11 lines
46 KiB
HTML
11 lines
46 KiB
HTML
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width,initial-scale=1" /><meta name="generator" content="VuePress 2.0.0-rc.26" /><meta name="theme" content="VuePress Theme Plume 1.0.0-rc.192" /><script id="check-mac-os">document.documentElement.classList.toggle('mac', /Mac|iPhone|iPod|iPad/i.test(navigator.platform))</script><script id="check-dark-mode">;(function () {const um= localStorage.getItem('vuepress-theme-appearance') || 'auto';const sm = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;const isDark = um === 'dark' || (um !== 'light' && sm);document.documentElement.dataset.theme = isDark ? 'dark' : 'light';})();</script><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","headline":"快速幂算法详解","image":[""],"dateModified":"2026-03-28T16:28:45.000Z","author":[]}</script><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:locale" content="zh-CN"><meta property="og:updated_time" content="2026-03-28T16:28:45.000Z"><meta property="article:tag" content="algorithms"><meta property="article:modified_time" content="2026-03-28T16:28:45.000Z"><link rel="icon" type="image/png" href="https://theme-plume.vuejs.press/favicon-32x32.png"><title>快速幂算法详解 | 博客 | 仲夏夜之梦</title><meta name="description" content="简介 快速幂算法是用于快速计算的算法,可以用于快速的处理大整数幂的场景。 最简单的 for 循环求数字的 n 次幂需要 O(n) 的时间复杂度。快速幂方法可以达到 O(logN) 的时间复杂度。 快速幂的核心思想是将指数拆分,以达到快速计算的目的。 快速幂 - 二进制法 原理 二进制法的核心思想是将指数转换为二进制形式,通过逐位处理并结合平方运算减少乘..."><link rel="preload" href="/assets/style-BIsJluQH.css" as="style"><link rel="stylesheet" href="/assets/style-BIsJluQH.css"><link rel="modulepreload" href="/assets/app-DTJ1dk4L.js"><link rel="modulepreload" href="/assets/index.html-DqUOlc4K.js"></head><body><div id="app"><!--[--><!--[--><div class="theme-plume vp-layout" vp-container data-v-3835cfce><!--[--><!--[--><!--]--><!--[--><span tabindex="-1" data-v-17e3d305></span><a href="#VPContent" class="vp-skip-link visually-hidden" data-v-17e3d305> Skip to content </a><!--]--><!----><header class="vp-nav" data-v-3835cfce data-v-59eaa6de><div class="vp-navbar" vp-navbar data-v-59eaa6de data-v-84e02ed1><div class="wrapper" data-v-84e02ed1><div class="container" data-v-84e02ed1><div class="title" data-v-84e02ed1><div class="vp-navbar-title" data-v-84e02ed1 data-v-111dde2d><a class="vp-link link no-icon title" href="/" data-v-111dde2d><!--[--><!--[--><!--]--><!--[--><!--[--><!--[--><img class="vp-image dark logo" style="" src="/plume.svg" alt data-v-b173f822><!--]--><!--[--><img class="vp-image light logo" style="" src="/plume.svg" alt data-v-b173f822><!--]--><!--]--><!--]--><span data-v-111dde2d>仲夏夜之梦</span><!--[--><!--]--><!--]--></a></div></div><div class="content" data-v-84e02ed1><div class="content-body" data-v-84e02ed1><!--[--><!--]--><div class="vp-navbar-search search" data-v-84e02ed1><div class="search-wrapper" data-v-97535d1e><!----><div id="local-search" data-v-97535d1e><button type="button" class="mini-search mini-search-button" aria-label="搜索文档" data-v-97535d1e><span class="mini-search-button-container"><span class="mini-search-search-icon vpi-mini-search" aria-label="search icon"></span><span class="mini-search-button-placeholder">搜索文档</span></span><span class="mini-search-button-keys"><kbd class="mini-search-button-key"></kbd><kbd class="mini-search-button-key">K</kbd></span></button></div></div></div><!--[--><!--]--><nav aria-labelledby="main-nav-aria-label" class="vp-navbar-menu menu" data-v-84e02ed1 data-v-d43c1732><span id="main-nav-aria-label" class="visually-hidden" data-v-d43c1732>Main Navigation</span><!--[--><!--[--><a class="vp-link link navbar-menu-link" href="/" tabindex="0" data-v-d43c1732 data-v-d1bfac4a><!--[--><!----><span data-v-d1bfac4a>首页</span><!----><!--]--></a><!--]--><!--[--><a class="vp-link link navbar-menu-link" href="/blog/" tabindex="0" data-v-d43c1732 data-v-d1bfac4a><!--[--><!----><span data-v-d1bfac4a>博客</span><!----><!--]--></a><!--]--><!--[--><a class="vp-link link navbar-menu-link" href="/ai/" tabindex="0" data-v-d43c1732 data-v-d1bfac4a><!--[--><!----><span data-v-d1bfac4a>模型</span><!----><!--]--></a><!--]--><!--[--><div class="vp-flyout vp-navbar-menu-group" data-v-d43c1732 data-v-2f9dd7ad><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-2f9dd7ad><span class="text" data-v-2f9dd7ad><!----><!----><span data-v-2f9dd7ad>学科知识</span><!----><span class="vpi-chevron-down text-icon" data-v-2f9dd7ad></span></span></button><div class="menu" data-v-2f9dd7ad><div class="vp-menu" data-v-2f9dd7ad data-v-ce500c40><div class="items" data-v-ce500c40><!--[--><!--[--><div class="vp-menu-link" data-v-ce500c40 data-v-4cd00159><a class="vp-link link" href="/subject/english/" data-v-4cd00159><!--[--><!----> 英语学习笔记 <!----><!--]--></a></div><!--]--><!--[--><div class="vp-menu-link" data-v-ce500c40 data-v-4cd00159><a class="vp-link link" href="/subject/certification/" data-v-4cd00159><!--[--><!----> 系统分析师 <!----><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="vp-flyout vp-navbar-menu-group" data-v-d43c1732 data-v-2f9dd7ad><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-2f9dd7ad><span class="text" data-v-2f9dd7ad><!----><!----><span data-v-2f9dd7ad>编程笔记</span><!----><span class="vpi-chevron-down text-icon" data-v-2f9dd7ad></span></span></button><div class="menu" data-v-2f9dd7ad><div class="vp-menu" data-v-2f9dd7ad data-v-ce500c40><div class="items" data-v-ce500c40><!--[--><!--[--><div class="vp-menu-link" data-v-ce500c40 data-v-4cd00159><a class="vp-link link" href="/programming/solidity/" data-v-4cd00159><!--[--><!----> Solidity <!----><!--]--></a></div><!--]--><!--[--><div class="vp-menu-link" data-v-ce500c40 data-v-4cd00159><a class="vp-link link" href="/programming/web/" data-v-4cd00159><!--[--><!----> Web 开发 <!----><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="vp-flyout vp-navbar-menu-group" data-v-d43c1732 data-v-2f9dd7ad><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-2f9dd7ad><span class="text" data-v-2f9dd7ad><!----><!----><span data-v-2f9dd7ad>技术理论</span><!----><span class="vpi-chevron-down text-icon" data-v-2f9dd7ad></span></span></button><div class="menu" data-v-2f9dd7ad><div class="vp-menu" data-v-2f9dd7ad data-v-ce500c40><div class="items" data-v-ce500c40><!--[--><!--[--><div class="vp-menu-link" data-v-ce500c40 data-v-4cd00159><a class="vp-link link" href="/theory/cryptography/" data-v-4cd00159><!--[--><!----> 密码学基础 <!----><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="vp-flyout vp-navbar-menu-group" data-v-d43c1732 data-v-2f9dd7ad><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-2f9dd7ad><span class="text" data-v-2f9dd7ad><!----><!----><span data-v-2f9dd7ad>运维</span><!----><span class="vpi-chevron-down text-icon" data-v-2f9dd7ad></span></span></button><div class="menu" data-v-2f9dd7ad><div class="vp-menu" data-v-2f9dd7ad data-v-ce500c40><div class="items" data-v-ce500c40><!--[--><!--[--><div class="vp-menu-link" data-v-ce500c40 data-v-4cd00159><a class="vp-link link" href="/ops/blockchain/" data-v-4cd00159><!--[--><!----> 区块链运维 <!----><!--]--></a></div><!--]--><!--[--><div class="vp-menu-link" data-v-ce500c40 data-v-4cd00159><a class="vp-link link" href="/ops/linux/" data-v-4cd00159><!--[--><!----> Linux 运维 <!----><!--]--></a></div><!--]--><!--[--><div class="vp-menu-link" data-v-ce500c40 data-v-4cd00159><a class="vp-link link" href="/ops/docker/" data-v-4cd00159><!--[--><!----> Docker 运维 <!----><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="vp-link link navbar-menu-link" href="/tools/" tabindex="0" data-v-d43c1732 data-v-d1bfac4a><!--[--><!----><span data-v-d1bfac4a>工具</span><!----><!--]--></a><!--]--><!--[--><a class="vp-link link navbar-menu-link" href="/about/" tabindex="0" data-v-d43c1732 data-v-d1bfac4a><!--[--><!----><span data-v-d1bfac4a>关于</span><!----><!--]--></a><!--]--><!--[--><a class="vp-link link navbar-menu-link" href="/friends/" tabindex="0" data-v-d43c1732 data-v-d1bfac4a><!--[--><!----><span data-v-d1bfac4a>友情链接</span><!----><!--]--></a><!--]--><!--]--></nav><!--[--><!--]--><!----><div class="vp-navbar-appearance appearance" data-v-84e02ed1 data-v-a295abf6><button class="vp-switch vp-switch-appearance" type="button" role="switch" title aria-checked="false" data-v-a295abf6 data-v-936ae0f2 data-v-7eb32327><span class="check" data-v-7eb32327><span class="icon" data-v-7eb32327><!--[--><span class="vpi-sun sun" data-v-936ae0f2></span><span class="vpi-moon moon" data-v-936ae0f2></span><!--]--></span></span></button></div><div class="vp-social-links vp-navbar-social-links social-links" data-v-84e02ed1 data-v-ad52545c data-v-adbced0f><!--[--><a class="vp-social-link no-icon" href="/" aria-label="github" title="github" target="_blank" rel="noopener" data-v-adbced0f data-v-d0ffcd88><!----></a><!--]--></div><div class="vp-flyout vp-navbar-extra extra" data-v-84e02ed1 data-v-b6926b42 data-v-2f9dd7ad><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-2f9dd7ad><span class="vpi-more-horizontal icon" data-v-2f9dd7ad></span></button><div class="menu" data-v-2f9dd7ad><div class="vp-menu" data-v-2f9dd7ad data-v-ce500c40><!----><!--[--><!--[--><!----><div class="group appearance" data-v-b6926b42><div class="item appearance" data-v-b6926b42><p class="label" data-v-b6926b42>外观</p><div class="appearance-action" data-v-b6926b42><button class="vp-switch vp-switch-appearance" type="button" role="switch" title aria-checked="false" data-v-b6926b42 data-v-936ae0f2 data-v-7eb32327><span class="check" data-v-7eb32327><span class="icon" data-v-7eb32327><!--[--><span class="vpi-sun sun" data-v-936ae0f2></span><span class="vpi-moon moon" data-v-936ae0f2></span><!--]--></span></span></button></div></div></div><div class="group social" data-v-b6926b42><div class="item social-links" data-v-b6926b42><div class="vp-social-links social-links-list" data-v-b6926b42 data-v-adbced0f><!--[--><a class="vp-social-link no-icon" href="/" aria-label="github" title="github" target="_blank" rel="noopener" data-v-adbced0f data-v-d0ffcd88><!----></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="vp-navbar-hamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="nav-screen" data-v-84e02ed1 data-v-f00b45b2><span class="container" data-v-f00b45b2><span class="top" data-v-f00b45b2></span><span class="middle" data-v-f00b45b2></span><span class="bottom" data-v-f00b45b2></span></span></button></div></div></div></div><div class="divider" data-v-84e02ed1><div class="divider-line" data-v-84e02ed1></div></div></div><!----></header><!----><!--[--><!----><!----><!--]--><!--[--><div id="VPContent" vp-content class="vp-content" data-v-3835cfce data-v-1136ebd8><div class="vp-doc-container is-posts" data-v-1136ebd8 data-v-a4311ef5><!--[--><!--]--><div class="container" data-v-a4311ef5><!----><div class="content" data-v-a4311ef5><div class="content-container" data-v-a4311ef5><!--[--><!--]--><main class="main" data-v-a4311ef5><nav class="vp-breadcrumb" data-v-a4311ef5 data-v-4c05ee02><ol vocab="https://schema.org/" typeof="BreadcrumbList" data-v-4c05ee02><!--[--><li property="itemListElement" typeof="ListItem" data-v-4c05ee02><a class="vp-link link no-icon breadcrumb" href="/" property="item" typeof="WebPage" data-v-4c05ee02><!--[-->首页<!--]--></a><span class="vpi-chevron-right" data-v-4c05ee02></span><meta property="name" content="首页" data-v-4c05ee02><meta property="position" content="1" data-v-4c05ee02></li><li property="itemListElement" typeof="ListItem" data-v-4c05ee02><a class="vp-link link no-icon breadcrumb" href="/blog/" property="item" typeof="WebPage" data-v-4c05ee02><!--[-->博客<!--]--></a><span class="vpi-chevron-right" data-v-4c05ee02></span><meta property="name" content="博客" data-v-4c05ee02><meta property="position" content="2" data-v-4c05ee02></li><li property="itemListElement" typeof="ListItem" data-v-4c05ee02><a class="vp-link link no-icon breadcrumb" href="/article/categories/?id=83ec45" property="item" typeof="WebPage" data-v-4c05ee02><!--[-->技术<!--]--></a><span class="vpi-chevron-right" data-v-4c05ee02></span><meta property="name" content="技术" data-v-4c05ee02><meta property="position" content="3" data-v-4c05ee02></li><li property="itemListElement" typeof="ListItem" data-v-4c05ee02><a class="vp-link link no-icon breadcrumb current" href="/archives/1325a3bf-91d7-43ff-9630-e894549e12c1/" property="item" typeof="WebPage" data-v-4c05ee02><!--[-->快速幂算法详解<!--]--></a><!----><meta property="name" content="快速幂算法详解" data-v-4c05ee02><meta property="position" content="4" data-v-4c05ee02></li><!--]--></ol></nav><!--[--><!--]--><!--[--><div class="vp-doc-title" data-v-9ebb517f><!--[--><!--]--><h1 class="page-title" data-v-9ebb517f><!----> 快速幂算法详解 <!----></h1><!--[--><!--]--></div><div class="vp-doc-meta" data-v-9ebb517f><!--[--><!--]--><p class="reading-time" data-v-9ebb517f><span class="vpi-books icon" data-v-9ebb517f></span><span data-v-9ebb517f>约 555 字</span><span data-v-9ebb517f>大约 2 分钟</span></p><p data-v-9ebb517f><span class="vpi-tag icon" data-v-9ebb517f></span><!--[--><a class="vp-link link tag vp-tag-mpia" href="/article/tags/?tag=algorithms" data-v-9ebb517f><!--[-->algorithms<!--]--></a><!--]--></p><!--[--><!--]--><p class="create-time" data-v-9ebb517f><span class="vpi-clock icon" data-v-9ebb517f></span><span data-v-9ebb517f>2026-01-09</span></p></div><!--]--><!--[--><!--]--><!--[--><div class="_archives_1325a3bf-91d7-43ff-9630-e894549e12c1_ external-link-icon-enabled vp-doc plume-content" vp-content data-v-a4311ef5><!--[--><!--]--><div data-v-a4311ef5><h2 id="简介" tabindex="-1"><a class="header-anchor" href="#简介"><span>简介</span></a></h2><p>快速幂算法是用于快速计算的算法,可以用于快速的处理大整数幂的场景。</p><p>最简单的 for 循环求数字的 n 次幂需要 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">O(n)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.0278em;">O</span><span class="mopen">(</span><span class="mord mathnormal">n</span><span class="mclose">)</span></span></span></span> 的时间复杂度。快速幂方法可以达到 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><mi>log</mi><mo></mo><mi>N</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">O(\log N)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.0278em;">O</span><span class="mopen">(</span><span class="mop">lo<span style="margin-right:0.0139em;">g</span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal" style="margin-right:0.109em;">N</span><span class="mclose">)</span></span></span></span> 的时间复杂度。</p><p>快速幂的核心思想是将指数拆分,以达到快速计算的目的。</p><h2 id="快速幂-二进制法" tabindex="-1"><a class="header-anchor" href="#快速幂-二进制法"><span>快速幂 - 二进制法</span></a></h2><h3 id="原理" tabindex="-1"><a class="header-anchor" href="#原理"><span>原理</span></a></h3><p>二进制法的核心思想是将指数转换为二进制形式,通过逐位处理并结合平方运算减少乘法次数。</p><p><strong>二进制分解指数</strong> 将指数 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span> 表示为二进制形式,例如 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mo>=</mo><mn>13</mn></mrow><annotation encoding="application/x-tex">n=13</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">13</span></span></span></span> 对应二进制为 <code>1101</code>,即 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>13</mn><mo>=</mo><mn>8</mn><mo>+</mo><mn>4</mn><mo>+</mo><mn>1</mn><mo>=</mo><msup><mn>2</mn><mn>3</mn></msup><mo>+</mo><msup><mn>2</mn><mn>2</mn></msup><mo>+</mo><msup><mn>2</mn><mn>0</mn></msup></mrow><annotation encoding="application/x-tex">13=8+4+1=2^3+2^2+2^0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">13</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">8</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">4</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">1</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8974em;vertical-align:-0.0833em;"></span><span class="mord"><span class="mord">2</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">3</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.8974em;vertical-align:-0.0833em;"></span><span class="mord"><span class="mord">2</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.8141em;"></span><span class="mord"><span class="mord">2</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">0</span></span></span></span></span></span></span></span></span></span></span>。</p><p><strong>幂的拆分</strong> 根据二进制分解,<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msup><mi>a</mi><mi>n</mi></msup><mo>=</mo><msup><mi>a</mi><msup><mn>2</mn><mi>k</mi></msup></msup><mo>×</mo><msup><mi>a</mi><msup><mn>2</mn><mrow><mi>k</mi><mo>−</mo><mn>1</mn></mrow></msup></msup><mo>×</mo><mo>⋯</mo><mo>×</mo><msup><mi>a</mi><msup><mn>2</mn><mn>0</mn></msup></msup></mrow><annotation encoding="application/x-tex">a^n=a^{2^k} \times a^{2^{k-1}} \times \dots \times a^{2^0}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6644em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6644em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.0952em;vertical-align:-0.0833em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:1.0119em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mtight">2</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.927em;"><span style="top:-2.931em;margin-right:0.0714em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mathnormal mtight" style="margin-right:0.0315em;">k</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1.0952em;vertical-align:-0.0833em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:1.0119em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mtight">2</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.927em;"><span style="top:-2.931em;margin-right:0.0714em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mathnormal mtight" style="margin-right:0.0315em;">k</span><span class="mbin mtight">−</span><span class="mord mtight">1</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="minner">⋯</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.9869em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9869em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mtight">2</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8913em;"><span style="top:-2.931em;margin-right:0.0714em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight">0</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>,其中仅当二进制位为 1 时,对应项被保留。</p><p><strong>逐位处理与平方加速</strong></p><ul><li>从最低位到最高位依次处理二进制每一位。</li><li>若当前位为 1,则将当前的底数累乘到结果中。</li><li>每一步将底数平方,为处理更高位做准备。</li></ul><h3 id="代码示例" tabindex="-1"><a class="header-anchor" href="#代码示例"><span>代码示例</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-python"><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> power</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">base</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> exp</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span>
|
||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> res </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span></span>
|
||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> while</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> exp </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">></span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> exp </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">&</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> res </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">*=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> base</span></span>
|
||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> base </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">*=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> base</span></span>
|
||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> exp </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">>>=</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span></span>
|
||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> res</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="快速幂-折半法" tabindex="-1"><a class="header-anchor" href="#快速幂-折半法"><span>快速幂 - 折半法</span></a></h2><h3 id="原理-1" tabindex="-1"><a class="header-anchor" href="#原理-1"><span>原理</span></a></h3><p>折半法的核心公式如下:</p><p>我们要快速计算 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>a</mi></mrow><annotation encoding="application/x-tex">a</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">a</span></span></span></span> 的 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span> 次方:</p><ul><li>当 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span> 为奇数的时候:<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msup><mi>a</mi><mi>n</mi></msup><mo>=</mo><mi>a</mi><mo>⋅</mo><mo stretchy="false">(</mo><msup><mi>a</mi><mn>2</mn></msup><msup><mo stretchy="false">)</mo><mrow><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo><mi mathvariant="normal">/</mi><mn>2</mn></mrow></msup></mrow><annotation encoding="application/x-tex">a^n = a \cdot (a^2)^{(n-1)/2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6644em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6644em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.4445em;"></span><span class="mord mathnormal">a</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1.138em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.888em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span><span class="mclose mtight">)</span><span class="mord mtight">/2</span></span></span></span></span></span></span></span></span></span></span></span></li><li>当 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span> 为偶数的时候:<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msup><mi>a</mi><mi>n</mi></msup><mo>=</mo><mo stretchy="false">(</mo><msup><mi>a</mi><mn>2</mn></msup><msup><mo stretchy="false">)</mo><mrow><mi>n</mi><mi mathvariant="normal">/</mi><mn>2</mn></mrow></msup></mrow><annotation encoding="application/x-tex">a^n = (a^2)^{n/2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6644em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6644em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.138em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.888em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mord mtight">/2</span></span></span></span></span></span></span></span></span></span></span></span></li><li>当 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span> 为 0 的时候,直接返回 1</li></ul><p>通过递归或迭代,将大指数问题分解为小指数问题,最后合并结果。</p><h3 id="代码示例-1" tabindex="-1"><a class="header-anchor" href="#代码示例-1"><span>代码示例</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-python"><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> power</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">base</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> exp</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span>
|
||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> exp </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span></span>
|
||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> half </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> power</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">base</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> exp </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">//</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
|
||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> half </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">*</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> half </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">*</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> (</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">base </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">if</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> exp </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">%</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 2</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> else</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="两种方法对比" tabindex="-1"><a class="header-anchor" href="#两种方法对比"><span>两种方法对比</span></a></h2><table><thead><tr><th style="text-align:left;">特性</th><th style="text-align:left;">二进制法</th><th style="text-align:left;">折半法</th></tr></thead><tbody><tr><td style="text-align:left;"><strong>实现方式</strong></td><td style="text-align:left;">迭代 + 位运算</td><td style="text-align:left;">递归/迭代 + 分治</td></tr><tr><td style="text-align:left;"><strong>时间复杂度</strong></td><td style="text-align:left;"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><mi>log</mi><mo></mo><mi>N</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">O(\log N)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.0278em;">O</span><span class="mopen">(</span><span class="mop">lo<span style="margin-right:0.0139em;">g</span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal" style="margin-right:0.109em;">N</span><span class="mclose">)</span></span></span></span></td><td style="text-align:left;"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><mi>log</mi><mo></mo><mi>N</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">O(\log N)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.0278em;">O</span><span class="mopen">(</span><span class="mop">lo<span style="margin-right:0.0139em;">g</span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal" style="margin-right:0.109em;">N</span><span class="mclose">)</span></span></span></span></td></tr><tr><td style="text-align:left;"><strong>空间复杂度</strong></td><td style="text-align:left;"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">O(1)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.0278em;">O</span><span class="mopen">(</span><span class="mord">1</span><span class="mclose">)</span></span></span></span></td><td style="text-align:left;"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><mi>log</mi><mo></mo><mi>N</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">O(\log N)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.0278em;">O</span><span class="mopen">(</span><span class="mop">lo<span style="margin-right:0.0139em;">g</span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal" style="margin-right:0.109em;">N</span><span class="mclose">)</span></span></span></span> (递归)</td></tr></tbody></table><p>两者都可以实现在指数时间解决问题,二进制方法比折半法更加的省空间。</p></div><!----><!----><!----><footer class="vp-doc-footer" data-v-a4311ef5 data-v-abf7cea9><!--[--><!--]--><!----><div class="contributors" aria-label="Contributors" data-v-abf7cea9><span class="contributors-label" data-v-abf7cea9>贡献者: </span><span class="contributors-info" data-v-abf7cea9><!--[--><!--[--><span class="contributor" data-v-abf7cea9>祀梦</span><!----><!--]--><!--]--></span></div><nav class="prev-next" data-v-abf7cea9><div class="pager" data-v-abf7cea9><a class="vp-link link pager-link prev" href="/archives/ea20bdda-0d49-4472-a647-2e305a930d11/" data-v-abf7cea9><!--[--><span class="desc" data-v-abf7cea9>上一页</span><span class="title" data-v-abf7cea9><!----><span data-v-abf7cea9>通过位运算快速生成所有的子序列</span></span><!--]--></a></div><div class="pager" data-v-abf7cea9><a class="vp-link link pager-link next" href="/archives/b1c77a1d-d402-4788-8049-fa3aeb12ebd0/" data-v-abf7cea9><!--[--><span class="desc" data-v-abf7cea9>下一页</span><span class="title" data-v-abf7cea9><!----><span data-v-abf7cea9>第十四届蓝桥杯大赛软件赛国赛 Python 研究生组(正在更新)</span></span><!--]--></a></div></nav></footer></div><!--]--></main><div id="comment" class="waline-wrapper vp-comment" vp-comment darkmode="false" style="display:block;" data-v-a4311ef5><!----></div><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!--]--><button type="button" class="vp-back-to-top" aria-label="back to top" data-v-3835cfce style="display:none;" data-v-bcf8d9a6><span class="percent" data-allow-mismatch data-v-bcf8d9a6>0%</span><span class="show icon vpi-back-to-top" data-v-bcf8d9a6></span><svg aria-hidden="true" data-v-bcf8d9a6><circle cx="50%" cy="50%" data-allow-mismatch style="stroke-dasharray:calc(0% - 12.566370614359172px) calc(314.1592653589793% - 12.566370614359172px);" data-v-bcf8d9a6></circle></svg></button><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" aria-label="sign down" class="vp-sign-down" aria-hidden="true" data-v-3835cfce style="display:none;" data-v-3df7872a><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" data-v-3df7872a><path d="m19 11l-7 6l-7-6" data-v-3df7872a></path><path d="m19 5l-7 6l-7-6" opacity="0.6" data-v-3df7872a></path></g></svg><footer class="vp-footer" vp-footer data-v-3835cfce data-v-91d1c8f3><!--[--><div class="container" data-v-91d1c8f3><div class="message" data-v-91d1c8f3>愿每一份温柔都被世界珍藏 ✨</div><div class="copyright" data-v-91d1c8f3><a href="https://beian.miit.gov.cn/" target="_blank" aria-label="gongan filing address">沪ICP备2023010022号-1</a>©2025祀梦的个人博客</div></div><!--]--></footer><!--[--><!--]--><!--]--></div><!----><!--]--><!--[--><!--]--><!--]--></div><script type="module" src="/assets/app-DTJ1dk4L.js" defer></script></body></html> |