首页 > 解决方案 > 在 python 中打印一个非常大的数字需要永远

问题描述

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

所以,这里是:

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

好吧,我看到的最后一个是“z 是计算出来的”,所以问题不是计算本身。

但即使一个小时后,我也看不到任何其他输出。

那么有人可以解释这里发生了什么吗?

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

标签: python-3.xperformancelargenumber

解决方案


因此,这是预期的行为并且“不会修复”。

将整数转换为字符串的算法具有二次复杂度,并且由于这种情况很少发生,因此需要付出太多努力。

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

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


推荐阅读