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

ops/2025/1/18 3:25:58/

零、前言

距离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/ops/150649.html

相关文章

docker访问权限问题

docker ps -a时看到错误信息中包含permission denied时,多半时权限问题 解决办法 首先查看当前存在的用户组 cat /etc/group 若存在docker用户组,则可在输出中找到docker字段 ... docker:x:999: ...若不存在docker用户组,则需要使用以下命令添加docker用户组 …

docker mysql5.7如何设置不区分大小写

环境 docker部署,镜像是5.7,操作系统是centos 操作方式 mysql 配置文件是放在 /etc/mysql/mysql.conf.d/mysqld.cnf, vim /etc/mysql/mysql.conf.d/mysqld.cnf lower_case_table_names1 重启mysql容器 验证 SHOW VARIABLES LIKE low…

分类统计字符个数(PTA)C语言

本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。 函数接口定义: void StringCount( char s[] ); 其中 char s[] 是用户传入的字符串。函数StringCount须在一行内按照 letter 英文字母个数, blank 空格或回…

MongoDB 学习指南与资料分享

MongoDB学习资料 MongoDB学习资料 MongoDB学习资料 在数据爆炸的当下,MongoDB 作为非关系型数据库的佼佼者,以其独特优势在各领域发光发热。无论是海量数据的存储,还是复杂数据结构的处理,MongoDB 都能轻松应对。接下来&#xf…

mac学习芋道源码记录

nodejs安装 v16.20.0 cd yudao-ui-admin-vue2 node install -g yarn yarn install npm run local改配置不然node install -g yarn报错 前往-前往文件夹-/Library 创建 /nodejs/node_global /nodejs/node_cache npm config set prefix /Library/nodejs/node_global npm c…

新年新声,如何守护我们的数字世界?

编辑:阿冒 设计:沐由 人工智能,已经成为当前最为热门的先导产业。 从2023年底至今,一波大模型热又引领了新的应用狂潮,短时间内就涌现了一批用户规模迅速超过千万乃至过亿的超级App,诸多科技城市也期许着向…

【Excel】【VBA】根据某列的编号顺序筛选对应的行导入相应的sheet中

Excel VBA 数据分类导入sheet 1. 程序功能 将Excel表格数据按照PC编号分类到不同Sheet。 2. 程序流程 #mermaid-svg-mKz9P9fN9JJgn75t {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-mKz9P9fN9JJgn75t .error-ic…

网站配置https证书,nginx配置https

1.首先确认安装nginx 和 openssl 执行nginx -v 和 openssl version 生成秘钥key,运行: 创建一个生成文件的目录 cd /etc/nginx/ mkdir ssl_key然后执行密钥key openssl genrsa -des3 -out server.key 20483.创建服务器证书的申请文件server.csr,运行: 这里会需要输入一些基本…