巴比伦算法求平方根c语言,巴比伦算法求平方根

算法描述:

这种方法比较就远了,也可以从牛顿迭代法推导。

假设x^2=n ,给出n 要求x 的值。

1 从一个任意的值x开始(越靠近根越好)。

2 初始化y = 1.

3. 重复一下步骤直到求得近似值:

a) 取x和y的平均数为下一个近似的根

b) y = n/x

不管刚开始x,y的相差有多大,最终都会想中间靠拢的,最后 x*y = n。例如 n=50时

x=50   y=1

x=25.5   y=1.96078

x=13.7304   y=3.64156

x=8.68597   y=5.75641

x=7.22119   y=6.92407

x=7.07263   y=7.06951

代码实现:

/*Returns the square root of n. Note that the function */

float squareRoot(float n)

{

/*使用n作为初始化,其实还有待优化 */

float x = n;

float y = 1;

float e = 0.000001; /* e 确定精度 */

while(x - y > e)

{

x = (x + y)/2;

y = n/x;

}

return x;

}

int main()

{

int n = 50;

printf ("Square root of %d is %f", n, squareRoot(n));

getchar();

}

例子:

n = 4 /*n 被用作初始解 */

Initialize x = 4, y = 1

下一个近似解 x = (x + y)/2 (= 2.500000),

y = n/x (=1.600000)

下一个近似解 x = 2.050000,

y = 1.951220

下一个近似解 x = 2.000610,

y = 1.999390

下一个近似解 x = 2.000000,

y = 2.000000

停止: (x - y) > e .

如果我们可以确定n是完全平方数(解为整数),可以使用下面的方法。对于非完全平方数,程序 会进入死循环

unsigned int squareRoot(int n)

{

int x = n;

int y = 1;

while(x > y)

{

x = (x + y)/2;

y = n/x;

}

return x;

}

/* 测试*/

int main()

{

int n = 49;

printf (" root of %d is %d", n, squareRoot(n));

getchar();

}

参考:http://www.geeksforgeeks.org/square-root-of-a-perfect-square/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

历史上有哪些看似经PS处理实则没有的照片?

全世界只有3.14 % 的人关注了爆炸吧知识使用过xp系统的朋友,对这张图,肯定很是熟悉,毕竟是作为xp系统的经典桌面,名为Bliss。这张图是1996年在美国加利福尼亚州锁诺玛县,锁诺玛山谷南部靠近一家乳品公司旧址拍摄。摄影…

爱思助手短信备份到安卓_爱思助手肿么将短信导入iphone

第一步:将你的IPHONE越狱,否则无法连接《91手机助手》;至于如何越狱,俺就不教了(因为俺也不会,找卖手机的朋友搞定吧);第二步,将你的安卓手机连接《豌豆荚》,在“短信”里&#xff0…

话里话外:企业内控的灵魂——企业文化

许多企业在谈到企业内控的时候,往往想到的更多的是如何建立更加完善严格的企业内控制度来约束员工、领导的行为,如何通过组织结构的调整保障企业内控的执行等等,但这些只是为了实现企业内控所采取的“硬约束”,事实上有些企业尽管…

iNeuLink硬件网关与iNeuOS工业互联网操作系统互联互通应用案例

目 录1. 应用概述... 22. 模拟硬件设备配置... 23. iNeuLink硬件网关配置... 43.1 硬件介绍... 43.2 硬件网关配置... 44. iNeuOS工业互联网操作系统配置... 61. 应用概述有一个生产镍的矿业集团,要整合不同厂区的…

dubbo优势_Dubbo 迈出云原生重要一步 应用级服务发现解析

作者 | 刘军(陆龟) Apache Dubbo PMC概述社区版本 Dubbo 从 2.7.5 版本开始,新引入了一种基于实例(应用)粒度的服务发现机制,这是我们为 Dubbo 适配云原生基础设施的一步重要探索。版本发布到现在已有近半年时间,经过这段时间的探索与总结&a…

编码之道:取个好名字很重要

11 February 2015代码就是程序员的孩子,给“孩子”取个好听的名字很重要! 我们在项目开发中,接触到的变量、函数、类多数都是项目自己定义的,往往都是为了解决一些特定的领域的问题,引入了各种各样的概念,代…

link的属性media的用处

<link rel”stylesheet” type”text/css” media”print” href”main.css” /> 就是样式输出的设备。 默认为 screen (缺省值)&#xff0c;提交到计算机屏幕&#xff1b;print&#xff0c; 输出到打印机&#xff1b;projection&#xff0c;提交到投影机&#xff1b;aur…

看了《隐秘的角落》才知道,掉头发有多可怕!10个掉头发最快的专业!快看看你中枪了没有!...

全世界只有3.14 % 的人关注了爆炸吧知识专业选得好秃头秃得早我爱学习&#xff0c;学习使我快乐我爱学习&#xff0c;学习使我进步我爱学习&#xff0c;学习使我美丽学习&#xff1a;我TM还能使你脱发呢我&#xff1a;港真现在上个大学不掉点头发都枉为一个真正的大学生上课与睡…

WPF企业内训全程实录(中)

摘要 WPF企业内训全程实录由于文章比较长&#xff0c;所以一共拆分成了三篇&#xff0c;上篇WPF企业内训全程实录&#xff08;上&#xff09;主 要讲了基础&#xff0c;这篇作为该实录的中篇&#xff0c;起着承上启下的作用,主要讲解开发模式、团队协作及应用框架。其实如果大家…

dakai微信小程序 ios_iOSAPP跳转微信小程序

前言APP跳转微信小程序&#xff0c;首先先关注一下微信官方给的一些资料&#xff1a;移动应用拉起小程序功能、iOS开发示例、iOS资源下载。准备工作准备工作需要在微信公众平台注册开发一个小程序、在微信开放平台注册申请一个APP&#xff0c;审核通过后方可使用&#xff0c;AP…

.Net Core with 微服务 - 可靠消息最终一致性分布式事务

前面我们讲了分布式事务的2PC、3PCTCC 的原理。这些事务其实都在尽力的模拟数据库的事务&#xff0c;我们可以简单的认为他们是一个同步行的事务。特别是 2PC,3PC 他们完全利用数据库的事务能力&#xff0c;在一阶段开始事务后不进提交会严重影响应用程序的并发性能。TCC 一阶段…

软件开发技术

1. 你们的项目组使用源代码管理工具了么&#xff1f;应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。 2. 你们的项目组使用缺陷管理系统了么&#xff1f;应该用。ClearQuest太复杂&#xff0c;我的推荐是BugZilla。 3. 你们的测试组还在用Wor…

[ JS 进阶 ] Repaint 、Reflow 的基本认识和优化 (2)

你是不是经常听师兄或一些前端前辈说不能用CSS通配符 *&#xff0c;CSS选择器层叠不能超过三层&#xff0c;CSS尽量使用类选择器&#xff0c;书写HTML少使用table&#xff0c;结构要尽量简单-DOM树要小....等这些忠告&#xff0c;以前我就大概知道使用通配符或者CSS选择器层次过…

vgh电压高了有什么_智能变频电源的功能是什么?

所谓的智能变频电源&#xff0c;其主要功能是将我国的城市电源(220V直流)转换为世界上其他国家的设备(110V&#xff0c;60Hz)&#xff0c;可以说&#xff0c;它的功能是一台很好的稳压器和调频设备。智能变频电源的功能是什么&#xff1f;著名的美国北宇实验室研究报告指出&…

PDC Party 即将在东莞登场

各位社区精英们&#xff0c; 我们即将在东莞举办PDC Party的活动&#xff0c;本次活动除了精彩的PDC Keynote Demo视频分享与微软技术趋势的讨论之外&#xff0c;还希望能够借此机会&#xff0c;与各位微软技术社区精英们面对面的交流&#xff0c;共同讨论后续的发展&#xff0…

你们数学老师当年是怎么叫这些符号的…

全世界只有3.14 % 的人关注了爆炸吧知识你们数学老师都是怎么叫这些符号的呢&#xff1f;

lisp正负调换_坐标提取lisp程序

工程|标签&#xff1a;|字号大中小订阅;该程序主要用于CAD点(point)三维坐标提取&#xff0c;并将数据输出为CASS软件中使用的数据格式;输出格式&#xff1a;点号,,测量Y值&#xff0c;测量X值&#xff0c;测量Z值例&#xff1a;1,,100.3244,1232,433,25;2010-05-17;命令&#…

自主生态再进一步,龙芯中科完成.NET3.1-LoongArch64平台研发

近日&#xff0c;龙芯中科.NET团队完成了.NET3.1-LoongArch64平台研发工作&#xff0c;研发的成功标志着围绕龙芯自主指令系统LoongArch的生态建设成果再进一步。龙芯自主指令系统LoongArch基于龙芯二十年的CPU研制和生态建设积累&#xff0c;LoongArch从顶层架构&#xff0c;到…

keras 自定义层input_从4个方面介绍Keras和Pytorch,并给你选择其中一个学习库的理由...

全文共3376字&#xff0c;预计学习时长7分钟对许多科学家、工程师和开发人员而言&#xff0c;TensorFlow是他们的第一个深度学习框架。TensorFlow 1.0于2017年2月发布&#xff1b;但客观来说&#xff0c;它对用户不是非常友好。过去几年里&#xff0c;由于Keras和PyTorch比Tens…

KlayGE 4.0中Deferred Rendering的改进(五)完结篇:Post process

转载请注明出处为KlayGE游戏引擎上一篇分析了KlayGE中实现实时全动态GI的方法&#xff0c;本篇是这个系列的完结篇&#xff0c;主要讲流水线的最后一段&#xff1a;Post process。 Post process 在KlayGE 4.0的Deferred Rendering中&#xff0c;post process主要有HDR、AA和col…