python-3.x - 在 python 中打印一个非常大的数字需要永远
问题描述
我想计算一个非常大的数字,因为 python 支持任意大的数字,我认为这是完美的。
所以,这里是:
import math
x=2**24
y=3840*2160
z=x**y
print("z is calculated")
print(z)
好吧,我看到的最后一个是“z 是计算出来的”,所以问题不是计算本身。
但即使一个小时后,我也看不到任何其他输出。
那么有人可以解释这里发生了什么吗?
PS:z 大约有 6000 万位数字...
解决方案
因此,这是预期的行为并且“不会修复”。
将整数转换为字符串的算法具有二次复杂度,并且由于这种情况很少发生,因此需要付出太多努力。
作为一种解决方法,建议我使用像 GMP 这样的包,它似乎更适合。
我只是希望这不会为攻击者可以提供这样一个数字作为输入的服务器打开 DOS 攻击的大门。如果服务器想要记录该数字以冻结就足够了。
推荐阅读
- python - Python - 解析 Excel 文件 / xlrd 和 openpyxl 之间的差异(日期系统和单元格值类型)
- java - 调用 JAXB getter 导致输出 xs:list 类型的空属性值
- node.js - 如何从节点服务器获取 zip 文件到 react-native 客户端
- dockerfile - 如何为 bazel container_image 规则指定等效的 Dockerfile RUN?
- amazon-web-services - DynamoDB 返回以下未授权执行
- php - WooCommerce 产品的自定义添加到购物车短代码不适用于外部产品
- java - 为 Keycloak httpClient 设置自定义 SNI 服务器名称
- c# - raycast 不适用于 Unity 中的预制件
- html - 标签停止单击输入文本
- python - 发送关于传入消息的 Webhook [帮助]