
n≒1000くらいまでコンビネーションnCkを計算できるプログラムを作ろうと思っています。
階乗を使った公式では直ぐに破綻してしまうので
7C3=(7・6・5)/(3・2・1)とやるようなプログラムを組んだのですが
希望より小さなnで破綻してしまいます。
とりあえず、今は7C3=(7/3)・(6/2)・(5/1)とやるような計算法で凌いでいますが
途中で実数計算(整数計算でないという意味)をせざるを得ず、ちょっと気持ち悪いです。
究極のプログラムを組もうという気は無いのですが
もう少し現状を改善したいと思っています。
良きアドバイスをいただけたら幸いです。
No.1
- 回答日時:
nが1000まで行くと二項係数は300桁くらいになってしまうので、そもそ
も計算値を表示できるのかわかりませんが。
1000までならば、1から1000を素因数分解するのは簡単だと思うので、
分子と分母を素因数分解して、分子のうち、分母に現れない素因数の
部分と、分母に現れる素因数の場合は指数の差をとって掛けたものを
計算すればよいとは思います。
つまり、
分子=p1^a1・・・pk^ak・q1^b1・・・qi^bi
分母=p1^c1・・・pk^ck
となるときは、
p1^(a1-c1)・・・pk^(ak-ck)・q1^b1・・・qi^bi
を計算するといった具合です。
これで、指数の部分が小さくなるのである程度爆発は防げる気はします。
分子・分母の素因数とその指数を配列で持たしておいて、ソートして
比較するとかして出来る気はします。
ソフトが何なのか分かりませんけど。
実際やってみたわけではなく、自分でVBAでやるとしたらこうするか
な、と考えたまでです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
15%増しの計算方法
-
教えて下さい
-
「出来型」と「出来形」の使い...
-
パーセントの計算
-
一定倍したある数を元に戻すには?
-
6畳間は何立方メートル?
-
250gを8割と2割に分けると
-
分数の問題がわかりません。
-
エクセルで関数計算後の値を数...
-
計算の質問なんですが、 10000×...
-
前年比の%の計算式を教えてく...
-
割引の計算を教えてください。
-
割り勘のトラブル
-
一日ずつ2倍の金額をもらい続...
-
算数で質問です よろしくお願い...
-
Excelの反復計算がわかりません。
-
Excel 計算式へ置換時にでてく...
-
同じ時間なのに、60進と10...
-
ラジアン値を°′″(度・分・秒)...
-
何通りかの計算で 7C4 の答えが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
15%増しの計算方法
-
パーセントの計算
-
一定倍したある数を元に戻すには?
-
何通りかの計算で 7C4 の答えが...
-
一日ずつ2倍の金額をもらい続...
-
計算の質問なんですが、 10000×...
-
3分2の計算教えて下さい
-
指数計算 2^n-1
-
6畳間は何立方メートル?
-
ラジアン値を°′″(度・分・秒)...
-
「出来型」と「出来形」の使い...
-
エクセルで関数計算後の値を数...
-
前年比の%の計算式を教えてく...
-
割引の計算を教えてください。
-
教えて下さい
-
Excelの反復計算がわかりません。
-
250gを8割と2割に分けると
-
8の4分の3乗は?
-
「前年同期比」の計算方法を教...
-
2の365乗
おすすめ情報