-2

我们如何求解具有 N 的方程!其中的常量,其中 N 的范围可以是 1<=N<=10^6 BigInteger 最多只能执行 128 位,对吗?

即使在两边都取对数,它留下的值也比 BigInteger 大。

4

3 回答 3

7

不,BigInteger可以处理任意大小的整数(受内存限制)。从文档中

不可变的任意精度整数。

(强调我的。)

这并不是说这BigInteger一定是满足您要求的正确答案,但在决定之前了解它的真正功能是值得的。

于 2012-01-01T11:45:54.707 回答
1

即使在两边都取对数,它留下的值也比 BigInteger 大。

让 N=10^6

log(N!) ~ NlogN - N [Stirling's approximation]

        ~ 13e6

这可以(很容易)适合 int

于 2012-01-01T11:56:27.843 回答
1

BigInteger 的实现被限制在大约 2 ^ 21 亿位或大约 256 MB。鉴于它用于int位长度,这不太可能增加。

于 2012-01-01T12:23:25.813 回答