Nを持つ方程式をどのように解くことができますか?その中の定数、ここでNは1 <= N <= 10 ^ 6の範囲である可能性がありますBigIntegerは最大128ビットしか実行できませんか?
両側で対数を実行しても、BigIntegerより大きい値が残ります。
Nを持つ方程式をどのように解くことができますか?その中の定数、ここでNは1 <= N <= 10 ^ 6の範囲である可能性がありますBigIntegerは最大128ビットしか実行できませんか?
両側で対数を実行しても、BigIntegerより大きい値が残ります。
いいえ、BigInteger
任意のサイズの整数を処理できます(メモリによって制限されます)。ドキュメントから:
不変の任意精度の整数。
(エンファシスマイン。)
それBigInteger
が必ずしもあなたの要件に対する正しい答えになるとは限りませんが、決定する前にその実際の機能を知っておく価値があります。
BigInteger の実装は、約 2 ^ 21 億ビットまたは約 256 MB に制限されています。int
ビット長の使用を考えると、これが増加する可能性は低いです。
両側で対数を計算しても、BigInteger よりも大きな値が残ります。
N=10^6とする
log(N!) ~ NlogN - N [Stirling's approximation]
~ 13e6
これは(簡単に)intに収まります