关于快速幂

关于快速幂

这次学习了下快速幂,所以来总结一下

快速幂,从字面意思就知道是快速的算出幂次方

我们先看试题a^b%m(快速幂取模)

                                     

a^b%m呢,如果靠死算的话不仅慢而且就连long long也会爆掉

所以就需要靠数学来总结个简单点的方法出来

下面是公式

                                     

这个公式一来就觉得很神奇(看不懂啊)还好,有推倒过程

                     

具体点就是

a*b=(a1*m*b1*m)+(a1*m*b2)+(a2*b1*m)+(a2*b2)

又因为mod m

所以m的都为0

所以最后只剩下a2*b2

所以a*b%m=a2*b2%m

又因为a2=a%m,b2=b%m

所以最终就变为----->a*b%m=[(a%m)*(b%m)]%m

于是便有了

                         

然而这次是真的看不懂了,咳咳)

这是这个试题的方法

代码的话

 

试题看完了,就是真正的快速幂了

核心思想

                     

代码的话

                         

真正的快速幂也知道了,接下来就看看怎么让上面的快速幂取模更快吧

             

这样就完工了︿( ̄︶ ̄)︿

Over

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章