求平方根的两种简单算法

原创 2003年06月06日 07:50:00

求平方根的算法


1.b=a/2;
while (abs(b*b-a)>e)  // e为一个很小的数,指明了算法的精度
 b=(b+a/b)/2;

2.
条件:N(N+2*Q*R) <=Y
n进制时,Q=n;R为上一次的结果;N为要试的满足条件的最大的值;Y为计算到这时的余数
(注意:补位时要看进制,如果为10进制,则应补100,即10*10;二进制时应补4,即2*2)

例1:10开方根(10进制)
sqrt(10)=3.1622776601683793319988935444327

  3. 1  6  2          
)10
  9           <=N(N+2*Q*R)=3*(3+2*10*0)=9<10 上 3
  1 00
    61        <=N(N+2*Q*R)=1*(1+2*10*3)=61<100 上 1
    39 00
    37 56     <=N(N+2*Q*R)=6*(6+2*10*31)=3756<3900 上 6
     1 44 00
     1 26 44  <=N(N+2*Q*R)=2*(2+2*10*316)=12644<14400 上 2
       17 56
   ....
   ....

例2:10开方根(2进制)
N(N+2*Q*R)
由于:
 N=0或1
 Q=2
 R=未知
所以:
 N(N+2*Q*R) <=> R<<2+1

(10)D=(1010)B
sqrt(10)=(3.1622776601683793319988935444327)D=(0011.0010 1001 1000)B
  1  1. 0  0  1  0               
)10 10
  1                    <=R<<2+1=0<<2+1=0+1=1<10 上 1
  1 10
  1 01                 <=R<<2+1=1<<2+1=100+1=101<110 上 1
     1 00
        0              <=R<<2+1=11<<2+1=1100+1=1101>100 上 0
     1 00 00
           0           <=R<<2+1=110<<2+1=11000+1=11001>10000 上 0
     1 00 00 00
       11 00 01        <=R<<2+1=1100<<2+1=110000+1=110001<1000000 上 1
          11 11
   ......
   ......

计算平方根的算法

申明,本文非笔者原创,原文转载自:http://www.cnblogs.com/xkfz007/archive/2012/05/15/2502348.html...
  • carson2005
  • carson2005
  • 2014年08月16日 14:51
  • 6437

快速开平方根算法

人们很早就在Quake3源代码中发现了类似如下的C代码,它可以快速的求1/sqrt(x),在3D图形向量计算方面应用很广 float invSqrt(float x) { float xhalf...
  • xtlisk
  • xtlisk
  • 2016年04月26日 12:02
  • 6416

用迭代法求某数a的平方根

今天晚上笔试题目最后一题很简单,可是自己做不出= =,就是不用库函数,求一个浮点数的平方根。 立马想到用物理法,比如正方形的面积法等,可是求解出不出,然后就绕在里面了。归根到底还是平时的知识储备太少...
  • JIANGHUICONG
  • JIANGHUICONG
  • 2015年10月14日 20:33
  • 3326

求一个数的平方根

方法一: 使用标准库函数, 中的sqrt函数直接计算。 其函数原型为: float sqrt (float),double sqrt (double),double long sqrt(double...
  • luckyjoy521
  • luckyjoy521
  • 2013年10月21日 10:29
  • 1746

求n的算术平方根(计算平方根的巴比伦的方法)

求n的平方根 Table of Contents 1 公式2 程序代码 1 公式 正数n的平方根可以通过计算一系列近似值来获得,每个近似值都比前一个更加接近准确值,...
  • wdkirchhoff
  • wdkirchhoff
  • 2014年11月02日 00:51
  • 1946

日学一算法---平方根倒数速算法

我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢? ...
  • xiaoguohaha
  • xiaoguohaha
  • 2014年03月20日 22:38
  • 9846

二分法和牛顿迭代法求平方根(Python实现)

原文地址 求一个数的平方根函数sqrt(int num) ,在大多数语言中都提供实现。那么要求一个数的平方根,是怎么实现的呢? 实际上求平方根的算法方法主要有两种:二分法(binary...
  • Yan456jie
  • Yan456jie
  • 2016年08月26日 22:16
  • 2699

用迭代法求某数a的平方根

今天晚上笔试题目最后一题很简单,可是自己做不出= =,就是不用库函数,求一个浮点数的平方根。 立马想到用物理法,比如正方形的面积法等,可是求解出不出,然后就绕在里面了。归根到底还是平时的知识储备太少...
  • JIANGHUICONG
  • JIANGHUICONG
  • 2015年10月14日 20:33
  • 3326

求平方根另一种算法

  • 2013年01月19日 10:33
  • 72KB
  • 下载

求算术平方根的算法

  • 2008年06月26日 10:29
  • 154KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:求平方根的两种简单算法
举报原因:
原因补充:

(最多只允许输入30个字)