0

嘿,所以我正在尝试计算 2000x2000 魔方的可能组合数量,我用 python 编写了这段代码来计算它,因为我使用的在线计算器和物理计算器都没有产生任何结果。我需要更强大的电脑吗?还是这根本无法实现?

实际的等式是 10^(((3.26017)*((2.00214)^(2000)))-6.51938),通过正常的计算器符号。如果你们中的任何人可以为我计算它,请尽可能将代码复制粘贴给我,谢谢。

     import decimal
>>> decimal.getcontext().prec = 10000
>>> decimal.Decimal(10)**((decimal.Decimal(3.26017))*((decimal.Decimal(2.00214))**(decimal.Decimal(2000))))-(decimal.Decimal(6.51938))
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    decimal.Decimal(10)**((decimal.Decimal(3.26017))*((decimal.Decimal(2.00214))**(decimal.Decimal(2000))))-(decimal.Decimal(6.51938))
decimal.Overflow: [<class 'decimal.Overflow'>]

4

1 回答 1

0

2.00214 2000是一个超过 600 位的数字。将它乘以大约 3 并减去大约 6 不会有太大变化。

问题是你想提高 10 到这个幂。这个数字的 10 次方不是一个 600 位的数字,而是一个位数有 600 位的数字。要将这个数字存储在内存中,您需要大约 10 600位。一个艾字节(假设您可以得到一台具有这么多内存的计算机)只有大约 10 19位。

简而言之,您的数字太大而无法计算

于 2021-04-25T15:24:02.350 回答