获取 OverflowError:数学范围错误(尝试计算一个数的幂)
我正在尝试找出这个表达式的确切数字,但我找不到。下面是我尝试过的代码片段。
>>> math.pow(400.0,math.pow(400.0,400.0))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: math range error
当我用numpy尝试时,我得到了这样的结果:
>>> np.power(400.0,np.power(400.0,400.0))
>>> inf
但是我还是没能得到确切的数字。有没有人能帮我一下?这对我来说会非常有帮助。
提前谢谢大家。
3 个回答
-2
你可以在这里找到你想要的确切数字:http://www.wolframalpha.com/input/?i=400^%28400^400%29
0
这个数字无法用分配给整数的大小准确表示。你可以使用 sys.maxint
来查看你能表示的最大整数。在一个62位的系统上,你可以看到如下内容:
>>> import sys
>>> sys.maxint
9223372036854775807
>>> type(2**63)
<type 'long'>
>>> type(2**62)
<type 'int'>
>>> sys.maxint - (2**63 - 1) == 0
True
4
你想计算的这个数字有 1.735057357739408×10^1041
个小数位(这个数据来源于wolframalpha)。你几乎不可能得到它的准确表示。inf
是你能得到的最接近的结果。