0

我正在尝试将前 1000 个伯努利数字存储在 python 的字典中。起初我只是按原样存储数字。所以我得到了一个溢出错误。现在,在浏览了以前的答案后,我想到了使用十进制模块。

所以这里

-5218507479961513801890596392421261361036935624312258325065379143295948300812040703848766095836974598734762472300638625802884257082786883956679824964010841565051175167717451747328911935282639583972372470105587187736495055501208701522099921363239317373617854217050435670713936357978555246779460902210809009009539232173 / 2291190

第 260 个伯努利数。我能够将所有以前的存储在字典中。

这是我编写的示例代码。

from decimal import *
d = Decimal
getcontext().prec = 10000
di = {260: d(-5218507479961513801890596392421261361036935624312258325065379143295948300812040703848766095836974598734762472300638625802884257082786883956679824964010841565051175167717451747328911935282639583972372470105587187736495055501208701522099921363239317373617854217050435670713936357978555246779460902210809009009539232173 / 2291190)}

这是错误快照

错误图片

有没有更好的方法来处理如此庞大的数字?请告诉我是否可以做一些事情来存储这些数字。

4

1 回答 1

0

Decimal您应该在进行除法之前将大数转换为,即:

(注意括号末尾)

di = {260: d(-5218507479961513801890596392421261361036935624312258325065379143295948300812040703848766095836974598734762472300638625802884257082786883956679824964010841565051175167717451747328911935282639583972372470105587187736495055501208701522099921363239317373617854217050435670713936357978555246779460902210809009009539232173) / 2291190}
于 2017-11-18T10:40:08.430 回答