1

これは重複した質問のように思えるかもしれませんが、そうかもしれませんが、他の多くの情報源を確認しましたが、解決策はどれも機能していないようです. 私が計算しようとしている数は 999,999^999,999 で、無駄に大きいですが、私はしばらくそれを取得しようとしています。結果をテキストファイルに書き込みたい。通常、オーバーフロー エラーが発生します。別の質問の解決策を試した後、別のオーバーフロー メッセージが表示されるようになりました。この数を計算する方法はありますか?Python でできない場合は、他の方法でできますか?

この時点での私のコード:

from decimal import Decimal

#Attempt 2 (Attempt 1 was just print(999999**999999))
a = Decimal(999999**999)
a = a**(2) #Not close enough. 2.0002895717 would be perfect, but that would cause another Overflow: "OverflowError: int too large to convert to float"
print(a)
open("number.txt","x").write(str(a))

#Attempt 3, I tried breaking down the power into it's square root, and then that into it's square roots
massiveNumber = Decimal(999999**31.6227608)
massiveNumber = Decimal(massiveNumber**Decimal(31.6227608))
massiveNumber = Decimal(massiveNumber**Decimal(31.6227608))
massiveNumber = Decimal(massiveNumber**Decimal(31.6227608))

open("number.txt","w").write(str(massiveNumber))

エラー:

Traceback (most recent call last):
  File "unknowablenumber.py", line 13, in <module>
    massiveNumber = Decimal(massiveNumber**Decimal(31.6227608))
decimal.Overflow: [<class 'decimal.Overflow'>]
4

1 に答える 1