14

二項係数の方法でカタロニア語の数値を計算するコードがあります。

def BinominalCoefficient(n,k):
    res = 1;
    if (k > n - k):
        k = n - k
    for i in range(k):
        res *= (n - i)
        res /= (i + 1)
    return res
def CatalanNumbers(n):
   c = BinominalCoefficient(2*n, n)
   return (c//(n+1))
print (CatalanNumbers(510))

n が 510 を超えるカタロニア語の数を計算しようとすると、"nan" という結果になります。これはなぜですか? どうすれば解決できますか?

4

2 に答える 2

2

xnx's answerに加えて、標準ライブラリPython 3.8に (二項係数) を追加すると、math.combカタロニア語の数を次のように計算できることに注意してください。

import math

def catalan(n):
  return math.comb(2*n, n) / (n+1)

catalan(511) # 2.1902514917394773e+303
于 2019-06-01T11:21:15.847 に答える