【发布时间】:2015-12-08 19:04:52
【问题描述】:
就像,真的,真的很大的数字.. 我正在尝试 fiboncci 系列的变体(最重要的变体是它在再次输入之前将每个术语平方,尽管还有一些其他修改。),我需要获得一个值太高的特定术语对于python来说很大。我说的是超过一千位数,可能更多。程序刚刚启动,什么也不做。 有什么方法可以使用 python 打印如此大量的数字,或者可以使用 JavaScript(首选)或任何其他语言来完成?
有问题的程序:
g=[0 for y in range(31)]
g[0]=0
g[1]=1
for x in range(2,31):
g[x]=pow((g[x-1]+g[x-2]),2)
print(g[30])
【问题讨论】:
-
Python 整数仅受您可以分配给 Python 进程的内存限制。我的机器可以轻松处理 100k 位的整数。 100 万位数字仍然有效,但速度明显变慢。
-
另一方面,JavaScript 无法处理任意大小的整数,因为所有数字都是浮点(双精度)值。
-
你的程序失败是因为它有一个错误,而不是因为 Python 不能处理千位数字。编程时的经验法则是,如果要在您刚刚破解的程序的问题和成千上万或数百万人多年来一直使用的代码库的问题之间进行选择,那么很可能是前者。
-
-
假设一个数字的平方往往会使其位数大约翻一番,我希望您的最终值大约有 20 亿位数。即使对于具有无限精度整数的语言,这似乎也在推动它。