快速幂的简单解释

快速幂算法,顾名思义就是求幂时速度很快(废话

看了很多博客里的解释,都说得很玄奥……其实快速幂很容易解释的。

比如求3的20次幂,一般我们会用循环乘法来求,也就是需要循环20次。

但是再想想,3^20 = 9^10,这样只需要循环10次了。继续,9^10 = 81^5。

这里似乎进行不下去了,其实还可以继续,81^5 = 81*81^4 = 81*6561^2 = 81*43046721

数一下,这个步骤只有五步。DEC(20)=BIN(10100),即:幂(BIN)有几位,循环次数就是几。


另外,判断一个数的奇偶性,不但可以使用mod 2,也可以使用 &1。他们只是在负整数部分略有不同罢了,一般求正整数幂 &1 的效率可以更高。

理解了这些,写一个快速幂算法就很容易了。


http://blog.csdn.net/runninghui/article/details/8905019

http://www.cnblogs.com/yan-boy/archive/2012/11/29/2795294.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值