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

news/2025/1/17 7:02:01/

零、前言

距离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

三、小结

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


http://www.ppmy.cn/news/1563826.html

相关文章

遥感原理及图像处理

第一章 绪论 1.1 遥感概述 (1)遥感 即遥远感知,是一种远距离的、非接触的目标探测技术和方法。 (2)主动遥感与被动遥感 ** 主动遥感** 由遥感器主动发射电磁波能量,并接收目标反射或散射回来的电磁波&…

Springboot集成Easy Rules引擎,实现一个商品优惠券系统

Easy Rules是一个轻量级的Java规则引擎,它允许开发者将业务规则从代码中解耦出来,使规则的管理和执行更加灵活。 现在让我们一起利用Spring Boot结合Easy Rules和MyBatis技术栈,可以实现一个高效且易于维护的优惠券系统例子。 1. 添加依赖项 …

【云岚到家】-day02-客户管理-认证授权

第二章 客户管理 1.认证模块 1.1 需求分析 1.基础概念 一般情况有用户交互的项目都有认证授权功能,首先我们要搞清楚两个概念:认证和授权 认证: 就是校验用户的身份是否合法,常见的认证方式有账号密码登录、手机验证码登录等 授权:则是该用…

【Ubuntu与Linux操作系统:十二、LAMP平台与PHP开发环境】

第12章 LAMP平台与PHP开发环境 12.1 LAMP安装与配置 LAMP简介 LAMP 是一种经典的开源 Web 开发平台,代表 Linux(操作系统)、Apache(Web 服务器)、MySQL(数据库管理系统)和 PHP(脚本…

【嵌入式——Linux】Ubuntu网络环境配置

本文描述的是在VMWare中配置网络,使其可以与板子互通,方便之后的嵌入式Linux开发。 单击“编辑”然后选择“虚拟网络编辑器 单击更改设置 选择VMnet0 类型选择桥接模式,自动桥接 如果想要桥接至某一个网卡,可以在下方自动处选择…

使用贪心算法解决最小生成树问题

大家好,我是 V 哥。今天跟大家聊一聊贪心算法问题,因为遇到这个面试题,问贪心算法解决最小生成树是怎么设计的,以及如何应用?好家伙,这面试官一上来就不按套路出牌,直接上难度,如果你…

mysql绿色版卸载详细教程

本文主要讲解如何卸载mysql绿色版: 用管理员权限打开cmd窗口,切换到mysql安装目录的bin目录下,如下图,执行命令【net stop mysql】以停止mysql服务。 除了上述命令行停止mysql服务的方法,也可以在服务界面通过右键菜单…

Git 规范

Commit 提交规范 Git commit 规范是一种约定俗成的方式,用于规范化提交信息的格式和内容。 遵循 Git commit 规范可以提高代码提交信息的可读性和可维护性,方便团队成员之间的沟通和代码审查。 同时,还可以利用工具和脚本来自动生成 Changel…