软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
求平方根的两种简单算法

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

求平方根的算法


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
   ......
   ......




相关文章

相关软件