Cでの二項係数の計算(C ++)
フーリエ変換を使用した二項係数の計算
それらを読むことにより、これは複雑でリソース集約的なタスクであると考えられるかもしれません。
何かをプログラミングする前に、何が何であるかを理解しましょう。
階乗の式:

開きます:

明らかに、


次に、例を数えてみましょう


10、9、8が相互に減少していることはすぐに明らかになり、

さらに詳しく見ると、削減はそれだけでは終わりません。 14は7、12 x 6、15 x 5、16 x 4で除算されます。3の残りの15は3で除算され、7 2の残りは最後の2で除算されます。 これらすべての削減を行った後、分母を取り除き、次の製品を取得します。

数えてみよう


最初の略語:

さらに、114/57 = 2、112 / 56 = 2、110 / 55 = 2など、62/31 = 2までがわかりやすい
2番目の略語:

そのため、分子に27個のdoubleを取得しました。これを分母で削減しようとします。 最初に、分母からの2のべき乗と分子からの対応する2の数をすべて消します。 (2、4、8、16 = 10デュース、17残り)

分母にはさらに11の偶数があり、それらの一部は均等に複数です。 すべての削減の後、分母は偶数を残さず、分子には2つのデュースがあります。

トリプルを見てみましょう。

さらに、5、7、11、17、19、23、29削減します
残っています:

これは23 544 809 717 399 465 172 377 319 715 292 496に相当します。