欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 【蓝桥杯】Python算法——快速幂

【蓝桥杯】Python算法——快速幂

2025/1/19 7:23:36 来源:https://blog.csdn.net/2301_77168269/article/details/145148987  浏览:    关键词:【蓝桥杯】Python算法——快速幂

零、前言

距离25年蓝桥杯还有大概三个月时间,接下来重点应该会放在蓝桥杯备考方向,一起努力,一起加油

一、快速幂

如何快速求 a b = p a^b=p ab=p?如果直接循环aaa…毫无疑问时间复杂度是很大的,那么怎么降低计算量呢?快速幂就是从幂运算的性质出发,提出的优化。
对于 a b a^b ab,如果b是偶数,则可拆分为 a b = a b / / 2 ∗ a b / / 2 a^b = a^{b//2}*a^{b//2} ab=ab//2ab//2
如果b是奇数,则有 a b = a b / / 2 ∗ a b / / 2 ∗ a a^b = a^{b//2}*a^{b//2}*a ab=ab//2ab//2a
对于任意的a,b,我们都可以利用这个性质进行拆解,直到指数部分拆解为0或1.

二、代码

def ksm(a,b,mod):if b==0:return 1if b==1:return a % modres = ksm(a, b//2, mod)res = res * res % modif b//2 == 1:res = res * a % modreturn res

三、小结

该算法属于蓝桥杯考点中初等数论范围考点,比较基础,建议记住随时可调用。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com