バックグラウンド:
n
次のようなボールが与えられた場合:
'a' balls are of colour GREEN
'b' balls are of colour BLUE
'c' balls are of colour RED
...
(もちろんa + b + c + ... = n
)
これらのボールを配置できる順列の数は、次の式で与えられます。
perm = n! / (a! b! c! ..)
perm
質問 1:整数オーバーフローをできるだけ長く回避するために「エレガントに」計算するにはどうすればよいですか?また、計算が完了したら、 の正しい値を持っているかperm
、最終結果がオーバーフローすることがわかっていることを確認してください。 ?
基本的に、GNU GMP などの使用は避けたいと考えています。
オプションで、質問 2: これは本当に悪い考えですか?