python:计算非常大的数字

python:计算非常大的数字,python,Python,我需要使用Python计算非常大的数字 它可以大到 factorial(n x 10,000,0000)*factorial(n x 10,000,0000) 所以我认为在一台普通的32位计算机上它会溢出 有解决办法吗?据我所知,Python(3)中的整数可以任意大。这在Python下不是问题 >>> 2**100 1267650600228229401496703205376L Python会自动将普通整数转换为长整数,并且不会溢出 您要使用的。它们是天生的。斯特林近似于

我需要使用Python计算非常大的数字

它可以大到

factorial(n x 10,000,0000)*factorial(n x 10,000,0000)
所以我认为在一台普通的32位计算机上它会溢出


有解决办法吗?

据我所知,Python(3)中的整数可以任意大。

这在Python下不是问题

>>> 2**100
1267650600228229401496703205376L
Python会自动将普通整数转换为长整数,并且不会溢出


您要使用的。它们是天生的。

斯特林近似于n!是(n/e)^n*sqrt(2*pi*n)。这大约有n*log(n/e)位

你在计算(n*1e8)^2.这将有大约2*n*1e8*log(n*1e8/e)位,即2e8*n*(17+log(n))。假设n相对较小,log(n)可以忽略不计,则为3.4e9*n位

您可以在一个字节中存储大约2.4位数字,因此您的结果将使用(1.4*n)GB的RAM,假设Python可以非常高效地存储数字

32机器最多可以寻址4GB的RAM,因此理论上可以计算n=1或2,但对于n=3,机器甚至不能在RAM中保存结果。在计算结果时,Python必须在RAM中保存多个bignum(例如,临时变量),因此实际内存使用量将高于上面的计算结果


实际上,我希望在一台具有大量RAM的64位计算机上,您永远无法获得Python计算的结果——该计算机将花费所有时间进行垃圾收集。

可能重复您认为它溢出的原因?您能否提供一个示例,说明使用Python的结果与您预期的结果有何不同?thanx。但不知何故,python返回的阶乘与我在excel上的计算不同,而且要小得多。我想知道为什么会这样。