利用Python解決將黃金比例計算至100位

這個問題有兩個解決思路:
一種是利用斐波拉契數列 相鄰兩個斐波拉契數列的比值就是黃金比例值 數字越靠後精確度越高 測試中到240位便可以將黃金比例計算精確到100位    
def fibs(x,a=1,b=1):
    if x is 1:
        return (a,b)
    else:
        temp=a;
        a+=b
        b=temp
        return fibs(x-1,a,b)
res=fibs(240)
chushu=res[0]
beichushu=res[1]
print(Decimal(str(beichushu))/Decimal(str(chushu)))

另一種就是2分法開根號
def _sqrt(a):
    x1=Decimal(a)
    x2=Decimal(a)/2
    while abs(x1-x2)>1e-100:
        x1=x2
        x2=(x1+Decimal(a)/x1)/2
    return x1,x2
黃金比例=(√5-1)/2  其中√5精確到100位那麼最終的黃金比例也就能精確到100位
最終結果:
0.61803398874989484820458683436563811772030917980576286213544862270526046281890244970720720418939113748476



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章