获取 OverflowError:数学范围错误(尝试计算一个数的幂)

5 投票
3 回答
1070 浏览
提问于 2025-04-17 22:16

我正在尝试找出这个表达式的确切数字,但我找不到。下面是我尝试过的代码片段。

>>> 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 是你能得到的最接近的结果。

撰写回答