关于快速幂

关于快速幂

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

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

我们先看试题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

全部评论

相关推荐

2024-12-13 17:58
门头沟学院 Java
点赞 评论 收藏
分享
2024-12-10 00:08
韩山师范学院 Java
讲道理的变色龙在午休:26届已经卷成这个b样了吗,遥想我们24届同学能用java敲个小游戏都算厉害了,20届的更加是一条狗都能找到工作。只能说祝你好运兄弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务