2016-10-18 5 views

答えて

1

en_1 > 1e-6は、Trueに決して評価されません。 en_1はちょうど大きくなります。ある時点では、Pythonが変換を処理することができないほど大きな数値になります。代わりにinvfactorial > 1e-6と比較:

en_1 = 1 
n = 1 
factorial = 1 
invfactorial = 1 
while invfactorial > 1e-6: # changed comparison 
    en = en_1 +invfactorial 
    n = n + 1 
    factorial = factorial * n 
    invfactorial = float(1.0/factorial) 
    en_1 = en # don't need both en_1 and en 

これは非常に簡素化することができます

+0

OK、私は後でそれをしようとします。どうもありがとう。 –

関連する問題