私のプログラムでは、私がpythonが私に与えることができる最も小さな数字を探しています。私が数を2で割ったとき、私は5 x 10^-324(5e-324)を得ました。私はこれをPythonで使うことができる最大の数で割ることができると思った。私はこれを行うことにより、Pythonで最大の数を取得しようとしました:最小番号を見つけようとしています
z = 1
while True:
try:
z = z+1
except OverflowError:
z = z-1
break
ここに私の完全なコードです:
from os import system
x = 76556758478567587
while True:
x = x/2
if x/2 == 0.0:
break
print("Smallest number I can compute:", x)
print()
z = 1
while True:
try:
z = z+1
except OverflowError:
z = z-1
break
print(str(x) + " divided by " + str(z) + " is...")
z = x/z
print(z)
system("pause >nul")
私はこれを実行するたびに、それは何もしません。私は突然それがまだ問題を解決しようとしていることを認識しているので、タスクマネージャーを開き、Pythonは死んだ牛を食べるオオカミのように私のCPUを食べていました。
私はPythonでの最小数は負のだろう知っているが、私はゼロ上記の最小数を取得したいです。
最初に最大の整数を見つけ、次に逆数を取る; –
最初のアルゴリズムはlog(N)-complexで、2番目のアルゴリズムはN-complexです。オーバーフローに達するまで2を掛ける必要があります。しかし私は運動が無意味であると感じています。 –
何ですか? Pythonには最大数または最小数はありません。 Pythonは自動的に "int"を実際に無限のサイズの "long"に変換します(現実的にはOSによって割り当てられます)。 max 'int'がありますが、それはかなり無意味です。それが満足できるものではない場合は、https://en.wikipedia.org/wiki/Arbitrary-precision_arithmeticを調べるか、参考文献として「big number library」を検索してください。 –