快速幂

devtools/2024/10/18 14:25:08/

a^b % q

给定整数 a b q, 求  a 的 b 次方 mod q

根据题目数字取值范围,不能暴力处理。
会有两个问题:
1、计算 a 的次方会超出范围
2、不能循环 b 次计算 a 的乘积,会超时

处理问题1:
每计算一次 a 的乘积,就 mod q

处理问题2:
将 b 转换为二进制来考虑,假如 b = 8;b 的二进制表示:1100;对应 8 4 0 0

int qmi(int a, int b, int q)
{int res = 1 % q;for(; b; b >>= 1){// 当 b 的低位为 0 的时候,不需要累乘入 resif(b & 1)    res = 1ll * a % q;a = 1ll * a * a % q;}return res;
}


http://www.ppmy.cn/devtools/45270.html

相关文章

三坐标测量机在汽车零部件质量控制中的应用

高质量的零部件能够确保汽车的性能达到设计标准,包括动力性能、燃油效率、操控稳定性等,从而提供更好的驾驶体验,建立消费者对汽车品牌的信任;也推动了汽车行业的技术创新,制造商不断研发新材料、新工艺,以…

vi和vim有什么不同?

vi 和 vim 都是流行的文本编辑器,它们之间有以下主要区别: 历史: vi 是一个非常古老的文本编辑器,最初由 Bill Joy 在 1976 年为 Unix 系统编写。vim(Vi IMproved)是 vi 的一个增强版,由 Bram M…

【Linux】使用pip3安装pexpect,解决报错:the ssl module in Python is not available

pip3是python3的包管理工具,安装、卸载、更新等管理python包。 pexpect是其中一个python库,用于自动化与终端交互。 centos7使用pip3安装pexpect,报错: pip3 install pexpect 原因:使用python3解释器导入ssl库检查ss…

Docker Swarm - 删除 worker 节点

1、前提:集群环境已经运行 在manager节点上执行: # 查看节点信息 >>> docker node lsID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION jr06s8pbrclkrxt7jpy7wae8t * iZ2ze78653g2…

随机森林分析:R语言轻松实现微生物组随机森林分析及重要变量的选择

数据和代码获取:请查看主页个人信息!!! 大家好!欢迎来到R语言数据分析视界。今天我来介绍微生物组执行随机森林分类分析的R语言操作方法。微生物组的随机森林分析可以用于研究微生物组的组成和功能与其他因素&#xff…

Python面试宝典:Python中与Pandas数据分析相关的面试笔试题(1000加面试笔试题助你轻松捕获大厂Offer)

Python面试宝典:1000加python面试题助你轻松捕获大厂Offer【第二部分:Python高级特性:第十七章:数据处理和分析:第二节:Pandas数据分析】 第十七章:数据处理和分析第二节:Pandas数据分析1. Pandas的核心数据结构2. 创建Series和DataFrame3. 数据访问和选择4. 数据清洗5…

Scala编程基础4 类、对象、继承、特质

类、对象、继承、特质 小白的Scala学习笔记 2024‎/5‎/28‎ 11:30:40 文章目录 类、对象、继承、特质Scala可以在类中、非方法中写代码,可以理解为代码写到了构造方法中 继承、接口抽象类样例类 package com.oracle.jt.testobjectimport scala.collection.mutable.…

Docker安装Elasticsearch与案例

Elasticsearch安装与案例 1 ElasticSearch相关配置1.1 下载镜像文件1.2 创建实例1.3 安装1.4 错误日志排查1.5 放开权限,在elasticsearch目录下之心1.6 主机访问 192.168.xxx.xxx:9200 2 Kibana安装2.1 访问 :http://192.168.233.128:5601/2.2 设置启动d…