在 python 中打印非常大的数字需要很长时间

printing a very large number in python takes forever

我想计算一个 非常 的大数,因为 python 支持任意大的数,所以我认为这很完美。

所以,这里是:

import math
x=2**24
y=3840*2160
z=x**y
print("z is calculated")
print(z)

好吧,我最后看到的是"z is calculated",所以问题不是计算本身。

但即使在一个小时后我也没有看到任何其他输出。

有人能解释一下这是怎么回事吗?

PS: z 大约有 6000 万位...

所以,这是预期的行为 "won't fix"。

将整数转换为字符串的算法具有二次复杂度,并且改进工作量太大,因为它很少发生。

作为解决方法,建议我使用像 GMP 这样的软件包,它似乎更适合。

我只希望这不会为服务器打开 DOS 攻击之门,攻击者可以在服务器上提供这样的数字作为输入。如果服务器要记录该数字以冻结就足够了。