- 主题:print(2**(10**10)),pycharm没有输出
跑了一晚上,pycharm没有输出,也没有报错,是什么情况?再大一点,就报 MemoryError了。有大佬知道吗?是不是算出来了,但是pycharm的控制台没法输出啊?感觉内存占用也不大,才600m+
--
FROM 120.242.251.*
我就想知道,普通python,能计算的最大整数是多少?(不用任何包的,python3.9),感觉1w+位都是小意思(十进制的)。
【 在 poggy 的大作中提到: 】
:
: 建议你很多次了, 找本python还有计算机原理好好学习学习基础,
: 就是调皮,贪玩。
--
FROM 120.242.251.*
啊?你输出出来了?能显示一下你的代码吗?我16g内存,也没有跑出来。内存占用一直600m+,程序似乎死循环了
【 在 pgw 的大作中提到: 】
不要转换成串来输出,用to_bytes,我这里这个大整数占用1.25G内存。
--
FROM 120.242.251.*
你大概用了多长时间啊?
【 在 pgw 的大作中提到: 】
不要转换成串来输出,用to_bytes,我这里这个大整数占用1.25G内存。
--
FROM 120.242.251.*
你到底如何算的啊?方便贴下代码吗?
【 在 pgw 的大作中提到: 】
: 我这台10年的破电脑用了70秒左右。在计算过程中内存消耗可不止1.25G,计算完后就下来了。
--
FROM 120.242.251.*
num_a = (2**(10**10)).to_bytes(10**10, "big")
print(num_a)
我这样写,还是 报错:MemoryError啊。高峰用了10g内存,你是如何写的啊?谢谢
【 在 pgw 的大作中提到: 】
不要转换成串来输出,用to_bytes,我这里这个大整数占用1.25G内存。
--
FROM 120.242.251.*
大佬, 分享一下你的代码啊。我用如下代码
import gmpy2
print(gmpy2.mpz(2)**(10**9))
也只计算出了 2**(10**9),如果是2**(10**10),同样会报错。 2**(10**9)的计算结果如下,大家可以看看结果是不是一样的:
前几位是:4398282079208540005159421318391706644699765194388594973565462303684433729905554443830043984407181821079925003
最后面的几位是:3834591063914659350598833620642843023291606821041787109376
pycharm的输出窗口,明显有卡顿。大家有兴趣的,可以算算看,结果是否一样?
但还是有个问题啊:算出来的结果是 1048540位,但是估算的话:
2**(10**9) = (2**10)**(10**8) 约等于 (10**3)**(10**8),应该有10**8,一亿位啊。是我估算错了吗?谢谢
【 在 pgw 的大作中提到: 】
不要转换成串来输出,用to_bytes,我这里这个大整数占用1.25G内存。
--
FROM 120.242.251.*
import gmpy2
print(gmpy2.mpz(2)**(10**9))
奇怪的是,我用gmpy,似乎可以算这个整数。但是输出的位数,和我估计的位数,不一致。不知道什么原因?
【 在 littleSram 的大作中提到: 】
: 有意思,我在mac的term上试了试,发现报错
: $ python3
: Python 3.11.1 (v3.11.1:a7a450f84a, Dec 6 2022, 15:24:06) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin
: ...................
--
FROM 120.242.251.*
你是用什么方法 精确计算出这个数的位数的?10亿位啊
【 在 littleSram 的大作中提到: 】
: 有意思,我在mac的term上试了试,发现报错
: $ python3
: Python 3.11.1 (v3.11.1:a7a450f84a, Dec 6 2022, 15:24:06) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin
: ...................
--
FROM 120.242.251.*
sys.maxsize并不能输出最大整数。或者说,python直接输出的大整数,肯定比 sys.maxsize 大
【 在 vwx 的大作中提到: 】
: sys.maxsize
: 你的感觉可能不对
--
FROM 120.242.253.*