私はPythonで非常に大きな数字を使うつもりですが、Pythonが非常に大きな数字を処理できるかどうか疑問です。数字には3,000までのゼロが入ります。Pythonで9,000桁以上の大きな数字を保存する
そして、3,000のゼロを使用して1のバイト数はどのくらいですか?
第3の質問ですが、数値を整数としてファイルに保存するにはどうすればいいですか?
私はPythonで非常に大きな数字を使うつもりですが、Pythonが非常に大きな数字を処理できるかどうか疑問です。数字には3,000までのゼロが入ります。Pythonで9,000桁以上の大きな数字を保存する
そして、3,000のゼロを使用して1のバイト数はどのくらいですか?
第3の質問ですが、数値を整数としてファイルに保存するにはどうすればいいですか?
パイソンことができますlong
型を使用して任意の長整数を格納し、さらにlong
liteそれらにL
を追加して0L
は、0
(int
)とは対照的に、long
のゼロである。さらに、計算の結果が大きすぎてint
で表すことができない場合は、int
からlong
に数値を自動的に「昇格」します。 long
は本格的な数値型で、すべてのPython数値演算と互換性があります。
整数以上が必要な場合は、Decimal
型の任意のサイズと精度の実数を提供するタイプのモジュールが必要です。バイナリ浮動小数点表現に固有の問題はありません。
long
とDecimal
双方の欠点は、後者は、ネイティブハードウェアサポートを持っているので、それらは、それぞれ、int
とfloat
よりも低速であることです。しかし、数学で数学をややゆっくりとすると、そのような数を全く使うことができなくなります。
サイズについては、int
オブジェクトは32ビットPythonでは12バイトです。これは、内部的には32ビットの量であるため、一見大きいサイズです。これは、Pythonの「すべてはオブジェクトです」アプローチによるものです。 (私は信じていますが、私には言いませんが、値の4バイト、インスタンスから型へのポインタのための4バイト、参照カウンタのための4バイトがあります。これは、オブジェクトがガーベジ-collected。これらのフィールドは、Pythonの64ビットバージョンに大きくしてもよい。)
それらは数(プラスオブジェクトオーバーヘッドに基づいて変わるようlong
の大きさ)は、変化するが、任意long
値の大きさとすることができますsys.getsizeof()
を使用して決定される。
自分で試してみてください: 'print '(' 3 '+' 0 '* 3000)' – Wilduck
ありがとう、それはちょっと高いと思われる1356と言います。 –
大きい数行います)
print sys.getsizeof(x)
は、(文字列なしでファイルに書き込みます:
x = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
をそしてそれがどのように多くのバイトを参照
fd = open("file.txt", "wb")
fd.write("%u" %x)
fd.close()
あなたが1つの有効数字を取った場合、あなたがする必要があるのは、指数を保存することだけです。 1つの整数は簡単に十分に大きくなります。 –
ちょうど好奇心から、あなたが取り組んでいる問題は何ですか? 10^3000は非常に大きな数(10^2920の宇宙の〜の原子数)です。 – georg
@ thg435 - それは数学のいくつかの曖昧な枝でなければならない。私はそれらの多くのゼロを必要とする宇宙論(または亜種)を知らない。 –