大数求余

news/2025/10/6 13:52:41/文章来源:https://www.cnblogs.com/chasetsai/p/19127404

大数求余问题: 在仅使用 int32 类型存储的前提下, 计算 \(x^a\ \text{mod}\ p\) (即 \(x^a\ \%\ p\)).

基本的运算规则: \((xy)\ \%\ p = [(x \ \% \ p)(y \ \% \ p)] \ \% \ p\)

循环求余

\(x < p\) 时,

\[x^a \ \% \ p = [(x^{a-1} \ \% \ p)(x \ \% \ p)] \ \% \ p = [(x^{a-1} \ \% \ p)x]\ \% \ p \]

利用此公式, 可以通过循环操作依次求 \(x^1, x^2,\cdots, x^{a-1}, x^a\)\(p\) 的余数

# 求 (x^a) % p -- 循环求余法
def remainder(x, a, p):rem = 1for _ in range(a):rem = (rem * x) % preturn rem

时间复杂度为 \(O(a)\)

快速幂

\[x^a \ \% \ p = (x^2)^{a/2} \ \% \ p = (x^2 \ \% \ p)^{a/2} \ \% \ p \]

具体要看 \(a\) 的奇偶性:

\[x^a \ \% \ p = \left\{\begin{matrix} (x^2 \ \% \ p)^{a//2} \ \% \ p & , a 为偶数 \\ [x(x^2\ \%\ p)^{a//2}] \ \% \ p &, a 为奇数 \end{matrix}\right. \]

时间复杂度为 \(\log a\) .

十进制正整数 \(a\) 的二进制形式为 \(b_m\cdots b_2b_1b_0\) , 则 \(x^a = x^{2^{m}b_m} \times \cdots \times x^{2^1 b_1}\times x^{2^{0}b_0}\). 计算 \(x^1, x^2, x^4, \cdots , x^{2^m}\) 的值:

# 求 (x^a) % p -- 快速幂求余
def remainder(x, a, p):rem = 1while a > 0:if a & 1: rem = (rem * x) % px = (x * x) % pa >>= 1return rem

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站开发需要研究什么门户网站 开发注意

vmware虚化优势VMWARE服务器虚拟化介绍利用虚拟化基础架构技术&#xff0c;可以不断整合工作负载&#xff0c;从而充分利用服务器并降低运营成本。该基础架构技术不但使系统管理员能够管理更多的服务器&#xff0c;而且在置备新的软件服务和维护现有软件服务时&#xff0c;具有…

visual studio 无法打开文件

55>已完成生成项目“306_EigenDecomposition_bin.vcxproj”的操作 - 失败。 56>LINK : fatal error LNK1104: 无法打开文件“..\..\Debug\glad.lib”文件夹权限问题

vulkan游戏引擎renderer_backend实现 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

详细介绍:【使用】【经验】docker 清理未使用的镜像的命令

详细介绍:【使用】【经验】docker 清理未使用的镜像的命令pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

关于网站制作报价微信小程序自助建站

作者&#xff1a;刘志勇&#xff0c;本文来自新浪微博视频平台资深架构师刘志勇在 LiveVideoStackCon 2018 讲师热身分享&#xff0c;并由 LiveVideoStack 整理而成。 本文从设计及服务可用性方面&#xff0c;详细解析了微博短视频高可用、高并发架构设计中的问题与解决方案。…

怎么建设局域网网站展示照片的网站

数环通让您可以通过不到几分钟的时间即可实现RSS订阅与Notion的对接与集成&#xff0c;从而高效实现工作流程自动化&#xff0c;降本增效&#xff01; 1.产品介绍 RSS订阅是数环通的内置应用&#xff0c;很多用户通过RSS订阅来收集自己在各大平台上看的内容&#xff0c;当RSS…

基于MPPT算法的光伏并网发电系统simulink建模与仿真

1.课题概述 基于MPPT算法的光伏并网发电系统simulink建模与仿真,包括PV光伏发电模块,并网电路,MPPT,PWM等模块。 2.系统仿真结果 3.核心程序与模型版本:MATLAB2022a 4.系统原理简介 光伏并网逆变器…

实用指南:【系统架构设计师】2025年上半年真题论文回忆版: 论系统负载均衡设计方法(包括解题思路和参考素材)

实用指南:【系统架构设计师】2025年上半年真题论文回忆版: 论系统负载均衡设计方法(包括解题思路和参考素材)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; dis…

软件版悟空博弈+WAUC构筑元人文演化之路研究报告——声明Ai研究

软件版悟空博弈+WAUC构筑元人文演化之路研究报告 一、引言:从价值对齐到价值弥漫的范式革命 在AI伦理的探索中,我们长期受困于"价值对齐"的范式——试图将一套预设的、静态的人类价值,"灌装"进…

可以自己做网站卖东西梧州论坛手机红豆网

实现一个一遍扫描的编译前端&#xff0c;将简化高级语言的部分语法成分&#xff08;含赋值语句、分支语句、循环语句等&#xff09;翻译成四元式&#xff08;或三地址代码&#xff09;&#xff0c;还要求有合理的语法出错报错和错误恢复功能。 测试样例 beginwhile a<b do…

温州建网站公司哪家好wordpress 做的网站

IP协议处于OSI参考模型的第三层——网络层&#xff0c;网络层的主要作用是实现终端节点间的通信。IP协议是网络层的一个重要协议&#xff0c;网络层中还有ARP(获取MAC地址)和ICMP协议(数据发送异常通知) 数据链路层的作用在于实现同一种数据链路下的包传递&#xff0c;而网络层…

Linux 中 m、mm、mmm 函数和 make 的区别 - 详解

Linux 中 m、mm、mmm 函数和 make 的区别 - 详解2025-10-06 13:20 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display…

做cad室内平面图的家具素材网站重庆怎么推广企业网站

C语言允许宏带有参数。在宏定义中的参数称为“形式参数”&#xff0c;在宏调用中的参数称为“实际参数”&#xff0c;这点和函数有些类似。 对带参数的宏&#xff0c;在展开过程中不仅要进行字符串替换&#xff0c;还要用实参去替换形参。 带参宏定义的一般形式为&#xff1a…

详细介绍:学习STC51单片机27(芯片为STC89C52RCRC)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

[KaibaMath1001] 关于∀ε0,|a-b|ε = a=b的证明

[KaibaMath1001] 关于∀ε>0,|a-b|<ε => a=b的证明摘要:如能理解|a - b| < ε => a = b,则就可以轻松理解数列极限或函数极限的定义。 # 1 关于∀ε>0,|a - b| < ε => a = b的证明 # …

基于Web的分布式图集管理系统架构设计与实践 - 教程

基于Web的分布式图集管理系统架构设计与实践 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

做逆战网站的名字建网站学什么专业

URLEncoder到底是干什么用的&#xff1f;&#xff1f; 都说是对form表单里的请求编码解码用的&#xff0c;但是为什么在写中文文件下载的时候也用到了。 就是说国际通用的编码对中文支持不好&#xff0c;所以需要对着玩意进行转换。 因为中文读取的时候你不给一个编码&#xff…

完整教程:Deepseek/cherry studio中的Latex公式复制到word中

完整教程:Deepseek/cherry studio中的Latex公式复制到word中pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

网站ftp国内大型软件外包公司

文章目录 [toc]配置无线网和分区修改时区安装内核和驱动自动生成 fstab 文件配置 pacman切换到安装好的系统设置时区配置 pacman 国内源安装 gui安装 GRUB 引导建立引导 增加内核模块配置开机自启修改 root 用户密码创建普通用户配置 sudo 重启进入新系统配置 wlan 自动连接 wi…