0
我完全陌生的Python和我想打印一個遞推數列的解決方案:爲什麼遞歸序列無法正確工作?
#Input sequence variables
a = float(raw_input("type in a = "))
n0 = int(raw_input("type in n_0 = "))
n1 = int(raw_input("type in n_1 = "))
y0 = float(raw_input("type in y_0 = "))
#Define function y_n (forward iteration)
def yn(n):
if (n==0):
return y0
else:
return (1/n)-a*yn(n-1)
#backward iteration
def yn_back(n):
return (1/a)*((1/n)-yn(n-1))
if(n1>=n0):
for i in range(n0,n1+1):
print(yn(i))
else:
for i in range(n0,n1+1):
print(yn_back(i))
但是,如果我運行此腳本a=5
,n0=1
,n1=30
和y0=log(5/6)=0.182322
的解決方案是非常高(從0.08839
到3.29e+18
)並且這些值對於偶數n是負的。該解決方案適用於n=1
。對於其他n
,yn(n)
定義中的(1/n)
似乎被忽略。
有人可以幫助我嗎?
非常感謝!
甚至更好:'from __future__ import division' – ThiefMaster
非常感謝! –
我還有一個問題:我想輸入y0的數學函數(例如log(6/5))。但即使輸入「math.log(6/5)」,它也無法轉換爲浮點數。如何管理? –