import{_ as a,c as n,a as t,o as p}from"./app-Bph9hmvC.js";const i={};function e(l,s){return p(),n("div",null,[...s[0]||(s[0]=[t(`
快速幂算法是用于快速计算的算法,可以用于快速的处理大整数幂的场景。
最简单的 for 循环求数字的 n 次幂需要 的时间复杂度。快速幂方法可以达到 的时间复杂度。
快速幂的核心思想是将指数拆分,以达到快速计算的目的。
二进制法的核心思想是将指数转换为二进制形式,通过逐位处理并结合平方运算减少乘法次数。
二进制分解指数 将指数 表示为二进制形式,例如 对应二进制为 1101,即 。
幂的拆分 根据二进制分解,,其中仅当二进制位为 1 时,对应项被保留。
逐位处理与平方加速
def power(base, exp):
res = 1
while exp > 0:
if exp & 1:
res *= base
base *= base
exp >>= 1
return res折半法的核心公式如下:
我们要快速计算 的 次方:
通过递归或迭代,将大指数问题分解为小指数问题,最后合并结果。
def power(base, exp):
if exp == 0: return 1
half = power(base, exp // 2)
return half * half * (base if exp % 2 else 1)| 特性 | 二进制法 | 折半法 |
|---|---|---|
| 实现方式 | 迭代 + 位运算 | 递归/迭代 + 分治 |
| 时间复杂度 | ||
| 空间复杂度 | (递归) |
两者都可以实现在指数时间解决问题,二进制方法比折半法更加的省空间。
`,24)])])}const h=a(i,[["render",e]]),r=JSON.parse('{"path":"/archives/1325a3bf-91d7-43ff-9630-e894549e12c1/","title":"快速幂算法详解","lang":"zh-CN","frontmatter":{"title":"快速幂算法详解","createTime":"2026/01/09 16:05:00","cover":"/images/elysia/9.jpg","coverStyle":{"layout":"left"},"permalink":"/archives/1325a3bf-91d7-43ff-9630-e894549e12c1/","description":"简介 快速幂算法是用于快速计算的算法,可以用于快速的处理大整数幂的场景。 最简单的 for 循环求数字的 n 次幂需要 O(n) 的时间复杂度。快速幂方法可以达到 O(logN) 的时间复杂度。 快速幂的核心思想是将指数拆分,以达到快速计算的目的。 快速幂 - 二进制法 原理 二进制法的核心思想是将指数转换为二进制形式,通过逐位处理并结合平方运算减少乘...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"快速幂算法详解\\",\\"image\\":[\\"https://www.simengweb.com/images/elysia/9.jpg\\"],\\"dateModified\\":\\"2026-01-09T08:10:29.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/archives/1325a3bf-91d7-43ff-9630-e894549e12c1/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"快速幂算法详解"}],["meta",{"property":"og:description","content":"简介 快速幂算法是用于快速计算的算法,可以用于快速的处理大整数幂的场景。 最简单的 for 循环求数字的 n 次幂需要 O(n) 的时间复杂度。快速幂方法可以达到 O(logN) 的时间复杂度。 快速幂的核心思想是将指数拆分,以达到快速计算的目的。 快速幂 - 二进制法 原理 二进制法的核心思想是将指数转换为二进制形式,通过逐位处理并结合平方运算减少乘..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://www.simengweb.com/images/elysia/9.jpg"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-09T08:10:29.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:src","content":"https://www.simengweb.com/images/elysia/9.jpg"}],["meta",{"name":"twitter:image:alt","content":"快速幂算法详解"}],["meta",{"property":"article:modified_time","content":"2026-01-09T08:10:29.000Z"}]]},"readingTime":{"minutes":1.86,"words":558},"git":{"createdTime":1767946229000,"updatedTime":1767946229000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"blog/technology/fast-power-algorithm.md","headers":[],"categoryList":[{"id":"126ac9","sort":10000,"name":"blog"},{"id":"750eb7","sort":10001,"name":"technology"}]}');export{h as comp,r as data};