加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

求平方根的巴比伦方法和牛顿迭代法

(2016-08-04 15:03:06)
分类: 算法
   今天在Python书上无意看到了巴比伦求平方根的算法,感觉很是有趣,就写下来和大家分享一下。
   巴比伦求平方根的算法实际上很简单:(假设要求一个数N的平方根)
  (1)预测一个平方根x,初始另一个值y,且x*y=N
  (2)求预测值与初始值的均值:x=x=(x+y)/2
   (3)比较x和y的差值是否达到精度,如果无,继续步骤(2)
实际上,书上说的更简单,也模糊一些,这里我就加一些个人理解。但这里的问题在于我们的第一个预测值的选取,如果选取得太离谱,效率就会很低,这里我们举一个例子:
N=60,x=60,y=1,精度取位0.0001

这里我们可以发现程序的效率很低,当我们选取x=30,y=2时,结果如下:http://s1/bmiddle/004igrvszy73MKN1xKg80&690

可见,预测值的选取很重要,那该如何选取这个值呢,这就要用到我们的快速平方根法,这种方法许多人都写过博客,我就发一个链接吧,里面的程序非常有意思,只要迭代一次就可以得到比较好的开方效果,其中涉及到的牛顿迭代我也发一个链接供大家参考:

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有