怎样求任意数字的怎么求平方根根

如何计算整数平方根
先一起来研究一下,怎样求 ,这里1156是四位数,所以它的算术平方根的整数部分是两位数,且易观察出其中的十位数是3.于是问题的关键在于;怎样求出它的个位数a?为此,我们从a所满足的关系式来进行分析.根据两数和的平方公式,可以得到1156=(30+a)2=302+2×30a+a2,所以 =2×30a+a2,即 256=(3×20+a)a,这就是说, a是这样一个正整数,它与 3×20的和,再乘以它本身,等于256.为便于求得a,可用下面的竖式来进行计算:
根号上面的数3是平方根的十位数.将 256试除以20×3,得4.由于4与20×3的和64,与4的积等于256,4就是所求的个位数a.竖式中的余数是0,表示开方正好开尽.于是得到,或
上述求平方根的方法,称为笔算开平方法,用这个方法可以求出任何正数的算术平方根,它的计算步骤如下:1.将被开方数的整数部分从个位起向左每隔两位划为一段,用撇号分开(竖式中的11’56),分成几段,表示所求平方根是几位数;2.根据左边第一段里的数,求得平方根的最高位上的数(竖式中的3);3.从第一段的数减去最高位上数的平方,在它们的差的右边写上第二段数组成第一个余数(竖式中的256);4.把求得的最高位数乘以20去试除第一个余数,所得的最大整数作为试商(3×20除256,所得的最大整数是 4,即试商是4);5.用商的最高位数的20倍加上这个试商再乘以试商.如果所得的积小于或等于余数,试商就是平方根的第二位数;如果所得的积大于余数,就把试商减小再试(竖式中(20×3+4)×4=256,说明试商4就是平方根的第二位数);6.用同样的方法,继续求平方根的其他各位上的数.如遇开不尽的情况,可根据所要求的精确度求出它的近似值.例如求
的近似值(精确到0.01),可列出上面右边的竖式,并根据这个竖式得到
笔算开平方运算较繁,在实际中直接应用较少,但用这个方法可求出一个数的平方根的具有任意精确度的近似值.我国古代数学的成就灿烂辉煌,早在公元前一世纪问世的我国经典数学著作《九章算术》里,就在世界数学史上第一次介绍了上述笔算开平方法.据史料记载,国外直到公元五世纪才有对于开平方法的介绍.这表明,古代对于开方的研究我国在世界上是遥遥领先的.
为您推荐:
扫描下载二维码君,已阅读到文档的结尾了呢~~
一个具有完全平方数的四位数,如何快速求出它的平方根呢 相关说明性文字来自网络收集,欢迎下载
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
一个具有完全平方数的四位数,如何快速求出它的平方根呢
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口4813人阅读
计算方法(3)
*功能:开方
*作者:KDF5000
#include&stdio.h&
int main()
//x为所求结果
int i=100;
//控制循环的次数a
printf(&请输入要开方的数:&);
scanf(&%f&,&a);
while(i--)
x=(x+a/x)/2;
printf(&开方的结果为:%f\n&,x);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:84106次
积分:1279
积分:1279
排名:千里之外
原创:43篇
(1)(1)(1)(3)(1)(6)(3)(1)(1)(1)(1)(2)(4)(1)(4)(1)(4)(1)(1)(2)(6)3570人阅读
算法(89)
如标题所示,不用平方根库函数,求解一个数字的平方根。
这个问题有两个思路:
思路1:采用二分的方式(无处不在的二分),上界初始化为数字本身,下界初始化为1,这样用二分,判断中间数字的平方和目标数字比较,再修改上界和下界,直到小于一定的阈值。
思路2:采用牛顿法(数值分析中提到),采用微分的方式,从初始点开始,每次迭代,微分求解切线,然后求解切线和x轴的交点,再以这个交点作为起点,迭代进行。比如求解24,那么写出函数:
f(x) = x^2 - 24
我们目标就是求解这个函数的根,函数一阶导数是:
f'(x) = 2*x
起始点可以选择x0 = 24,通过求解,可以得到下一个迭代点的公式为:
x1 = -f(x0) / f'(x0) + x0
这样迭代下去,直到最后小于一定的阈值。
算法代码如下:
* square.cpp
Created on:
Author: happier
#include &iostream&
#include &algorithm&
#include &cstdlib&
#define E 0.001
//精度设置
* 二分法求解
double bSearch(double number, int *count)
//int count = 0;
double start = 1.0;
double end =
while(true)
(*count)++;
double mid = (start + end) / 2;
if(mid * mid - number &= E && mid * mid - number &= -E)
if(mid*mid - number & E)
* 牛顿法求解
double newton(double number, int *count)
double x0 =
double x1;
while(true)
(*count)++;
x1 = -(x0*x0 - number) / (2 * x0) + x0;
if(x1 * x1 - number &= E && x1 * x1 - number &= -E)
return x1;
int main()
int count = 0; //统计迭代次数
cout && &Please input the number::& &&
cout && bSearch(number, &count) &&
cout && count &&
count = 0;
cout && newton(number, &count) &&
cout && count &&
通过运行发现,牛顿法的求解速度要比二分法快很多,例如求解30000,牛顿法只要11次迭代,可以达到0.001精度,但是二分法需要33次,所以数值分析普遍采用牛顿法进行求根。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:443317次
积分:5908
积分:5908
排名:第3376名
原创:166篇
转载:65篇
评论:80条
(1)(1)(1)(2)(1)(5)(16)(21)(12)(1)(6)(11)(3)(3)(2)(4)(4)(10)(6)(2)(2)(1)(4)(10)(1)(2)(1)(4)(2)(1)(2)(7)(3)(14)(19)(13)(7)(11)(7)(8)}

我要回帖

更多关于 excel中求平方 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信