gpt4 book ai didi

python - 你如何在 Python 中可视化一个巨大的整数?

转载 作者:行者123 更新时间:2023-12-04 17:44:11 33 4
gpt4 key购买 nike

所以,为了好玩,我想亲眼看看我们迄今发现的最大质数(2^277,232,917 − 1 根据 this ),它是一个 23,249,425 位数字。好家伙。所以我开始用 Python 手动计算数字:2**277232917-1 这会给我一个答案……最终……总有一天。在我的一个内核一直处于节流状态的情况下等待半小时后,我开始寻找一种更快的解决方案来求解指数。我找到了 this gem在维基百科上称为

Exponentiation by Squaring

def exp_by_squaring(x, n):
if n<0:
return exp_by_squaring(1 / x, -n)
elif x==0:
return 1
elif x==1:
return x
elif n%2==0:
return exp_by_squaring(x * x, n / 2)
elif not n%2==0:
return x * exp_by_squaring(x * x, (n - 1) / 2)

将其插入 python3 控制台并输入 t=exp_by_squaring(2, 277232917)-1 并等待……哦,等等,完成了!我喜欢这个概念。现在有了这个数字,我可以 print(str(t)) 并且它又被卡住了。假设我可以让它在一夜之间写入文件 f=open("LargestPrime", "w") f.write(str(t)) f.close()。第二天早上,当我尝试打开一个 23.2 MB 文本文件时,它只会卡住并再次限制核心。我想这太多了,甚至无法展示。

您将如何实现这一目标?您能否将 int 拆分为单独的部分,然后将它们转换为字符串以将它们写入单独的文件?我会以不同的格式保存它吗?我怎样才能缩短将这个 23M+ 数字 int 转换为字符串所需的时间?我怎么能实际显示这么大的数字?我在这里完全遗漏了什么吗?

最佳答案

来自维基百科,https://en.wikipedia.org/wiki/Largest_known_prime_number,本月创造了当前的记录保持者,他们显示了数字的第一位和最后一位数字,这是来自维基百科的片段:

Current record
The record is currently held by 2^82,589,933 − 1 with 24,862,048 digits, found by GIMPS in December 2018.[1] Its value is:

148894445742041325547806458472397916603026273992795324185271289425213239361064475310309971132180337174752834401423587560 ...

(24,861,808 digits omitted)

... 062107557947958297531595208807192693676521782184472526640076912114355308311969487633766457823695074037951210325217902591[6]

The first and last 120 digits are shown above.

你可以像这样在 python 中自己看到数字:


In [304]: t = pow(2,82589933)-1

In [305]: n = 24862048-1000

In [306]: a = pow(10,n)

In [310]: f = t // a

In [311]: len(str(f))
Out[311]: 1000

In [312]: f
Out[312]: 1488944457420413255478064584723979166030262739927953241852712894252132393610644753103099711321803371747528344014235875600519775183265856491842931959708229506343343451097313699205342310641140595264767876746819332211781849375477107986211226534792788629942124472358169794644246737226991115661546889834987857788089927363336356512975433528625745217905541113567854803029538259231829040461918808066672007922224457105930988153887394047699962279207194319396507712065726965912877889178044489321452540526892581106697213587260581303968314495108439814585421184420014843770161064290389581708297705941888994879327016081279727414348185908077459964865519006267229417152151375452828119103082446114401235115945685219674703882657903762551993641583352385315154281845586882595358954721029880984778088370168635141972524013277223153442722574718130614762581537465586626911838102926072292274274159167780554098619357220471593661193199616071805842054109436528998477753168262245190870602541591290575551503401919575208699092280595

关于python - 你如何在 Python 中可视化一个巨大的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52961723/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com