用户:
e国阳光查看:0 回复:1 评论:0 创建时间:2020-02-14T22:49:22
【作品展示】

【作品介绍】
中值逼近确定黄金分割数值。
【作品源代码】
#逼近法黄金分割
# e国阳光 2020-02-04
# 段1:段2=段2:全长
# 令全长=1,段2=x
# (1-x)/x=x
# 1-x=x²
# 当x=0,左边1-x=1,右边=0,左边>右边
# 当x=1,左边1-x=0,右边=1,左边右边;如果x大了,左边 15:
print("你输入的数%d>15,请重新输入!" % digits)
continue
print("开始进行%d位黄金分割数值逼近......" % digits)
#逼近算法块
start = 0 # 低界
end = 1 # 高界
zero = 4*pow(10, -digits-1) # 浮点0,浮点数的0与精度有关,按四舍五入原则确定0的阈值。
print("小数点后%d位的浮点0是%s。" % (digits, str(zero)))
while(end-start > zero):
mid = (start+end)/2 # 中值
print("start=" + str(start) + " mid=" +
str(mid) + " end=" + str(end)) # 打印域界和中值
if 1-mid > mid*mid: # 如果左边>右边,说明结果在mid的右边,否则在mid的左边
start = mid
else:
end = mid
print("%d位黄金分割数值是:%s" % (digits, str(round(end, digits)))) # 打印结果
'''
程序输出如下:
请输入小数点后位数3-15:3
开始进行3位黄金分割数值逼近......
小数点后3位的浮点0是0.0004。
start = 0 mid = 0.5 end = 1
start = 0.5 mid = 0.75 end = 1
start = 0.5 mid = 0.625 end = 0.75
start = 0.5 mid = 0.5625 end = 0.625
start = 0.5625 mid = 0.59375 end = 0.625
start = 0.59375 mid = 0.609375 end = 0.625
start = 0.609375 mid = 0.6171875 end = 0.625
start = 0.6171875 mid = 0.62109375 end = 0.625
start = 0.6171875 mid = 0.619140625 end = 0.62109375
start = 0.6171875 mid = 0.6181喵0625 end = 0.619140625
start = 0.6171875 mid = 0.61767578125 end = 0.6181喵0625
start = 0.61767578125 mid = 0.617919921875 end = 0.6181喵0625
3位黄金分割数值是:0.618
请输入小数点后位数3-15:
'''
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn