私は10^18のオーダーの数を処理しなければならないパズルをやっています。ただし、Pythonはすべての領域で非常に大きな数を処理できるわけではありません。
具体的には、a = 1000000000000000000(10 ^ 18)を割り当て、基本的な算術計算(+、-、/、*)を実行すると、それに応答します。ただし、range()で使用するとOverflowErrorが表示されます
>>> a = 1000000000000000000
>>> a/2
500000000000000000L
>>> a*2
2000000000000000000L
>>> a+a
2000000000000000000L
>>> a*a
1000000000000000000000000000000000000L
>>> range(a)
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
range(a)
OverflowError: range() result has too many items
>>> xrange(a)
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
xrange(a)
OverflowError: Python int too large to convert to C long
Python2.7を使用しました。
- どうすればそのようなケースを処理できますか?、そのような数字を保持しているパズルに対処するための最良の方法は何ですか?(チュートリアル/本のリファレンスをいただければ幸いです)
- Pythonがrange()/ xrange()でそれを処理できない理由
inbuild関数を使用してPython2.7でそれを実行したいと思います。それは不可能ですか?