利用Python解决将黄金比例计算至100位

来源:互联网 发布:执业医师照片软件 编辑:程序博客网 时间:2024/04/28 10:23
这个问题有两个解决思路:
一种是利用斐波拉契数列 相邻两个斐波拉契数列的比值就是黄金比例值 数字越靠后精确度越高 测试中到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



原创粉丝点击