快速幂算法及其拓展

摘要

本文讲解了快速幂算法的定义、复杂度证明及两种实现(递归与非递归),以及它的两个重要拓展:快速幂模M算法和矩阵快速幂。其中矩阵快速幂算法是矩阵求幂问题对整数求幂问题的借鉴,实际应用中对于线性递推式求解能起到强大的效率优化。


快速幂算法

问题引入:求 an(a,nN+)
朴素算法:令ans初始值为1,乘n次a得到 an
朴素算法时间复杂度:O(n)

问题:如果n非常大,比如高达 1015 ,怎么办?
思考:朴素算法哪里可以优化?

朴素算法的特点是,连乘过程中底数始终为 a ,这很不聪明。考虑下例:
a=2,n=15
我们没有必要乘15次2,注意到 15=23+22+21+20 ,不妨将 215 拆分为 223×222×221×2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值