漸化式を用いて数字を出力したいのですが自分で考えたコードだといちいち答えを出すのに何回も計算しなければなりません。
(例)get_total_xに5を入れるとしたら1/2.*get_total_x(n-1)+1に代入され
get_total_x(5-1)となりget_total_x(4)も計算しなければなりません。その次は3,2,1と計算されていきます。
その場合計算結果としては合っているのですが計算が遅くなってしまうのでスムーズに
一つ前の計算結果を用いて答えを出力したいのですがどのように変更したらよいのでしょうか。
def get_total_x(n):
if n == 0:
return 0
else:
return 1/2.*get_total_x(n-1)+1
def get_total_y(n):
if n == 0:
return 0
else:
return 1/3.*get_total_y(n-1)+2
def get_total_z(n):
if n == 0:
return 0
else:
return 1/4.*get_total_z(n-1)+3
for i in range(0,50):
print(str(get_total_x(i))+","+str(get_total_y(i))+","+str(get_total_z(i)))
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。