html 除法计算,除法快速计算

如果计算结果是8bit的数字量,我们有以下结论:

1. X最大可能的值是 255*60

2. 结果的截断误差在±1/2以内

如果当X为255*60时(最糟糕状况),我们的计算误差仍然小于±1/2,算法的精度就是合格的。

设计算误差为Δ(数量比),为了达到精度,应该有:

255×60×Δ < 1/2

即:Δ 至少要小于

1/(255×60×2)

我们把计算精度进一步提高,取Δ=1/(2^16)

[=1/(256×64×2)]。

显然有等式:

X(1/60

-

Δ)    <

X/60

推导之:

<=>

1/60 - 1/(2^16)  1/60  1/60 +

1/(2^16)

<=>

(2^14 - 15)/(15*2^16)

1/60

(2^14 + 15)/(15*2^16)

<=>

(16384 - 15)/(15*2^16)

1/60 =

16384/(15*2^16)

(16384 + 15)/(15*2^16)

我们在

16384±15之间(精度要求范围之内)寻找一个可以被15整除,而且最接近16384的数,它就是:

16380,靠它来把分母上的15约掉。

于是有 1/60 ≈ 16380/(15*2^16) = 1092/2^16, 误差为

4/(15*2^16) 小于1/(2^17)。

1092/(2^16) = (1024+64+4)/(2^16)

= 1/(2^6) + 1/(2^10) + 1/(2^14)

故而:

X/60 ≈ X/(2^6) + X/(2^10) + X/(2^14)  (计算误差小于

8bit数的截断误差),至此,如何用程序快速计算X/60,已经显而易见了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值