最快的开平方算法(中值定理法) 作者:李义 2006

本文介绍了基于整数平方数中值定理的快速开平方根算法,通过简单的加、减、移位运算,实现整数平方根的精确计算,特别适用于没有硬件乘法器的系统和需要大量开方运算的场景,如游戏程序和图形处理。
摘要由CSDN通过智能技术生成

关键词:最快 开平方根 算法 中值定理 开方




整数平方数中值定理:
设a、b、c为顺序排列间距为P的3个整数,A、B、C是它们的平方
则有:b2=(a 2+c2)/2-R,即:B=(A+C)/2-R
其中:修正值R=P2
特别地,如果间隔P=1、2、 4、 8、 16、…2 n (或Pn=2Pn-1)时
则: 修正值R=1、4、16、64、256、…22n (或Rn=4Rn-1)

证明:
已知:a=b+P
c=b-P
有:a 2=(b+P)2=b2+2Pb+P2
c2=(b-P)2=b2-2Pb+P2
则:a2+c2=2b2+2P2
即:b2=(a2+c2)/2-P2
特别地
当:间隔 P=2 n=2*2 n -1=2 Pn-1时(n为自然数)
则:修正值 R=P2=22n=(2 Pn-1)2=4(P n-1)2=4Rn-1
(证明完)


根据以上定理,可以实现整数快速开平方根计算:

先构建一个长度为N的数组1:

数组长 N=Ni+1 1 2 3 4 5 …
间隔 P=2Pi 2 4 8 16 32 …
修正值 R=4Ri 4 16 64 256 1024 …

以及一个对应2PN(这里N=4、2PN=32)的典型数和它的平方数组2:
按N=4间隔
排列的数 d=di+2PN 32 64 96

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值