2016-03-19 3 views
-3

wikiの[a1, a2, a3...]の連続小数の例に従おうとしました。私はプログラムを実行すると、私は2.727272...75 としてn = 2のための結果を得ることが可能ですが、私はそこに二つの出力があり、それらが低いn = 3をしようとすると (2.394 2行目2.3333を...取得)私は追加する必要があるかどうかわかりませんもう1つはy =...行に設定されています。もしそうなら、別のセットi -1+yに追加して、私がnを変更するたびに追加する必要がありますか? なぜ2つの答えが得られますか?私はループをどのようにして問題がありますか?ここでPythonの継続部分の最初のn + 1項を使って 'e'の近似を見つける

は私のコードです:wikipedia's article on the subjectから

n = abs(int(input("Enter number: "))) 
y = 0 
d = 0 

for i in range(n, 1, -1): 
    if i == n: 
     y = (i - 1) + ((i - 1)/((i-1)/(i + (i/(i + 1)))) 
     d = d + y 
    else: 
     d = i + 1 

    e = 2 + (1/d) 

    print (e) 
+0

記載してくださいあなたのコードをテキストとして質問します(画像、またはリンクとして表示されます)。これを強調表示し、エディタで '{}'ボタンをクリックすることでコードの書式を得ることができます(または、余分な4つのスペースで全てをインデントすることができます)。 – Blckknght

+0

最初のものの後ろの 'i'は、決して' y'を使用しません。あなたがしているのは 'i'(直前の値を無視して)から' d 'を直接計算し、 'd'から' e'を計算することだけです。私はあなたが実装しようとしている分数を理解しているかどうか分からないので、実際に修正を提案することはできません。 – Blckknght

+0

ああ、おそらく 'if'条件の論理は後ろ向きですか?第2回以降の反復で 'if'ブロックのコードを使用したいのですが、最初の反復でのみ' else'を使用しますか?もしそうなら、 'i == n 'の代わりに' i!= n'を使います。 – Blckknght

答えて

1

e

これは、適切な感じるものです(お好みのnを選ぶ):

from __future__ import division, print_function 
from sys import argv 
from math import factorial 

e = 0 
n = int(argv[1]) if len(argv) > 1 else 100 # allowing to pass a value for n as an argument 
for i in range(n): 
    e += 1/factorial(i) 

print(e) 
+0

あなたはそうだよ – Julius

+0

私はそれを修正した。 – Julius

関連する問題