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

零、前言

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

一、快速幂

如何快速求 a b = p a^b=p ab=p?如果直接循环aa a...毫无疑问时间复杂度是很大的,那么怎么降低计算量呢?快速幂就是从幂运算的性质出发,提出的优化。

对于 a b a^b ab,如果b是偶数,则可拆分为 a b = a b / / 2 ∗ a b / / 2 a^b = a^{b//2}*a^{b//2} ab=ab//2∗ab//2

如果b是奇数,则有 a b = a b / / 2 ∗ a b / / 2 ∗ a a^b = a^{b//2}*a^{b//2}*a ab=ab//2∗ab//2∗a

对于任意的a,b,我们都可以利用这个性质进行拆解,直到指数部分拆解为0或1.

二、代码

python 复制代码
def ksm(a,b,mod):
	if b==0:
		return 1
	if b==1:
		return a % mod
	res = ksm(a, b//2, mod)
	res = res * res % mod
	if b//2 == 1:
		res = res * a % mod
	return res

三、小结

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

相关推荐
czlczl2002092519 分钟前
算法:二叉树的公共祖先
算法
小白程序员成长日记1 小时前
2025.11.23 力扣每日一题
算法·leetcode·职场和发展
16_one2 小时前
autoDL安装Open-WebUi+Rag本地知识库问答+Function Calling
人工智能·后端·算法
散峰而望3 小时前
C++数组(三)(算法竞赛)
开发语言·c++·算法·github
q***95223 小时前
SpringMVC 请求参数接收
前端·javascript·算法
初级炼丹师(爱说实话版)4 小时前
多进程与多线程的优缺点及适用场景总结
算法
hetao17338374 小时前
2025-11-25~26 hetao1733837的刷题记录
c++·算法
历程里程碑4 小时前
各种排序法大全
c语言·数据结构·笔记·算法·排序算法
少许极端4 小时前
算法奇妙屋(十四)-简单多状态dp问题
算法·动态规划·图解算法·简单多状态dp·打家劫舍问题·买卖股票问题全解
2301_823438025 小时前
解析论文《复杂海上救援环境中无人机群的双阶段协作路径规划与任务分配》
人工智能·算法·无人机