巴比伦算法求平方根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/
巴比伦算法求平方根c语言,巴比伦算法求平方根相关推荐
- c语言经典算法大全pdf,c语言经典算法100例pdf版.pdf
c语言经典算法100例pdf版 C 语言经典算法 100 例 C 语言编程经典 100 例 A:[程序1] 题目:有1.2.3.4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程 ...
- 迭代公式求平方根c语言程序设计,迭代法求平方根C语言实验报告
与<迭代法求平方根C语言实验报告>相关的范文 西安交通大学实验报告 课程_ c++ __ 实验名称_迭代公式求平方根_ 第1页 共2页 系 别__ 土木工程 ____ 实 验 日 期 20 ...
- c语言二级常考算法大全,二级C语言 常用算法.doc
二级C语言 常用算法 C语言常用算法 一.计数.求和.求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值.终值或结束条件,更要注意用来表示计数.和.阶乘的变量的初值. 例:用随机 ...
- 算法导论中C语言代码,算法导论-学习笔记与进度
算法导论 阅读进度 第一部分 基础知识 第一章 计算中算法的角色 Done 1.1 算法 输入与输出 算法可以解决哪些问题 数据结构 技术 一些比较难的问题 1.2 作为一种技术的算法 效率 算法和其 ...
- c语言编程实现表达式求值,c语言实现表达式求值的方法
c语言实现表达式求值的方法 发布时间:2020-06-22 16:45:46 来源:亿速云 阅读:82 作者:Leah 这期内容当中小编将会给大家带来有关c语言实现表达式求值的方法,以专业的角度为大家 ...
- c语言小学生算法,急求:C语言小学生算法练习软件实现的任务:面向小学生,随机选择两个整数进行加、减、乘、除,要求学生解答。设计内容:1、电...
共回答了16个问题采纳率:100% #include #include #include #include int sumScore = 0; int corrN = 0;//全局变量 //总的分数 ...
- c语言算法课件,《C语言常见算法》PPT课件.ppt
一 素数.随机数.最大值和最小值 (1) 判断一个数是否为素数 素数:只能被1和它本身整除的数. 要判断一个正整数m是不是素数,需 要用大于1且小于它本身的正整数去除它 ,只要它能被其中的一个数整除, ...
- 贪心算法设计作业调度c语言,贪心算法 - 数据结构与算法教程 - C语言网
1.简介 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 贪心算法不是对所有问题都能得到整体最优 ...
- 贪心算法 0-1背包c语言,贪心算法0-1背包问题(算法实验代码).pdf
. 实验三. 0-1 背包问题(贪心算法) 实验代码: #include int max(int a,int b) { if(a>b) return a; else return b; } vo ...
最新文章
- 写一手好 SQL 很有必要
- Css网格布局-Grid布局
- ASP.NET Core中间件初始化探究
- 基于 CoreAudio 的音频编解码(一):音频解码
- 晨哥真有料丨你太容易被得到了!
- CSS中meta标签的viewport
- Ruby on rails Mac开发 入门笔记(一)
- python简述程序的ipo结构_python程序流程图
- 清理浏览器html缓存图片吗,在JSP或Javascript中清除浏览器缓存中的图像
- C++ 基础练习 圆的面积
- 麒麟子Javascript游戏编程零基础教程大纲
- StaMPS结合TRIAN 做GACOS大气校正
- python如何取消换行_python怎么取消换行
- (转) 在C#中使用WIA获取扫描仪数据(三、利用Filter处理图片)
- 【Linux】mysql命令行查看表结构,字段等信息
- mysql导出所有表字段备注
- 我国计算机的最新进展,我国计算机最新进展
- 高数焦虑?这个假期,暗暗发力,2023年“兔”飞猛进
- AI换脸(支持视频换脸,支持cpu、低算力)【附代码】
- 重视网络安全,华为红客联盟最新开源分享“黑客零基础入门学习路线+笔记”堪称黑客入门天花板教程
热门文章
- ASP.NET Core 通过 Microsoft.DotNet.Watcher.Tools 实现热部署
- .NET Core开发日志——从ASP.NET Core Module到KestrelServer
- TypeScript 2.8引入条件类型
- 微软高管解读财报:努力创新云基础架构
- 基于Bootstrap 3.x的免费高级管理控制面板主题:AdminLTE
- C#对window 硬件类操作,ManagementObjectSearcher
- git stash参数介绍
- [转]new Thread的弊端及Java四种线程池的使用
- 作为一个甘肃天水人,我对罐罐茶有一种特殊的情怀
- C#中泛型在Class上的实现