mod运算的实现以及相关算法
取余运算
x % u
等价于 x - floor(x/u) * u
算术求模 mod(x, u)
x mod u
等价于 ((x % u) + x) % x
a = b x q + r (只要b>0b > 0b>0, 必有r≥0r\ge0r≥0 )
一个较大的数m与一个较小的数n求mod(m,n)
限制: m >>> INT_MAX, n ≤\le≤ INT_MAX
利用秦九韶公式写法进行思考, 123=((0∗10+1)+2)∗10)+3)∗10123 = ((0 * 10 + 1) + 2) * 10) + 3) * 10123=((0∗10+1)+2)∗10)+3)∗10
int mod(const string& m, int n) {int last = 0;int ans = 0;for (int i = 0; i != m.size(); ++i) {ans = (last * 10 + (m[i] - '0')) % n;last = ans;}return ans;
}
幂求模 mod(an,n)mod(a^n, n)mod(an,n)
思路: 取模的等价运算, 即 (a∗b)%n(a*b) \% n(a∗b)%n 等价 (a%10)∗(b%10)(a \% 10)*(b \% 10)(a%10)∗(b%10)
int mod(int a, int n, int m) {int ans = 1;for (int i = 0; i != n; ++i) {ans = (ans * a) % m;}return ans;
}
引入快速幂运算
int mod(int a, int n, int m) {if (n == 0) return 1;int tmp = mod(a, n / 2, m);tmp = (tmp * tmp) % m;if (n & 1) return (tmp * a) % m;return tmp;
}
迭代版本:
int mod(int a, int n, int m) {int ans = 1;int base = a;for (int i = n; i > 0; i /= 2) {if (i & 1) ans = (ans * base) % m;base = (base * base) % m;}return ans;
}
大数求mod
mod运算的实现以及相关算法相关推荐
- GIMPS梅森素数搜寻及相关算法综述
GIMPS梅森素数搜寻及相关算法综述 1. 梅森素数简介 2. GIMPS 项目 3. 卢卡斯-莱默测验 1. 梅森素数简介 梅森数是指形如 2n−1{\displaystyle 2^{n}-1}2n ...
- 模幂运算问题,使用朴素算法和重复-平方算法(快速幂+C#计算程序运行时间)
1.什么是模幂运算问题 给出a, k, mod 计算ak(%mod)a^k (\%mod)ak(%mod)的值 k是一个非常大的正整数(超过1e7) 附,一个可以提交的地方: leetcode 372 ...
- 语音识别之前端处理及相关算法
前言 语音识别是模式识别的一个分支,又从属于信号处理科学领域,同时与语音学.语言学.数理统计及神经生物学等学科有非常密切的关系.语音识别的目的就是让机器"听懂"人类口述的语言,包括 ...
- 关键词提取-论文研读-betweenness centrality相关算法(2)
项目实训记录系列博客 一马当先,争做国家栋梁. 博客说明 本博客初衷是用于学校项目实训知识梳理.工作内容.收获感悟的记录. 若能在您的学习之路上有所帮助,不胜荣幸.但若需转载,也请注明出处. 博客包含 ...
- jvm学习第十、十一天、十二天—垃圾回收器1、垃圾回收的相关概述2、 垃圾回收相关算法3、 垃圾回收器
标题:jvm学习第十.十一天.十二天-垃圾回收器 学习内容: 1.垃圾回收的相关概述 2. 垃圾回收相关算法 3. 垃圾回收器 内容详情: 1.垃圾回收的相关概述 什么是垃圾( Garbage)? 垃 ...
- 盘点十大GIS相关算法
1.道格拉斯-普克算法(Douglas–Peucker) 道格拉斯-普克算法(Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法.迭代适应点算法.分裂与合并算法)是将曲 ...
- 基于Matlab的Vander Lugt相关算法车牌汉字识别系统
一.引言 光学图像识别技术是一种有较高鉴别率的技术,具有高度并行性.容量大.速度快的特点,特別适用于信息的快速和实时处理.光学相关是光学模式识别中的一种主要方法.无论是空间匹配滤波相关或是联合变换相关 ...
- 推荐系统[一]:超详细知识介绍,一份完整的入门指南,解答推荐系统相关算法流程、衡量指标和应用,以及如何使用jieba分词库进行相似推荐,业界广告推荐技术最新进展
搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排).系统架构.常见问题.算法项目实战总结.技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排 ...
- 求模(mod)运算的应用
1.mod运算的性质 结合律 ((a+b) mod p + c)mod p = (a + (b+c) mod p) mod p ((a*b) mod p * c)mod p = (a * (b*c) ...
最新文章
- 3.4.4 选择重传协议(SR)
- 凸包Graham Scan算法实现
- Spring Cloud Config git版
- HALCON示例程序vessel.hdev血管的分割与测量
- 学术造假?撤销职称!不端“黑历史”将影响未来评审
- linux网络是文件吗,linux网络配置文件是什么意思
- HCIE Security 防火墙NAT技术 备考笔记(幕布)
- macOS多版本虚拟机镜像免费下载(及教程)
- Small Basic 语言 学习笔记
- 华为前线核心组织“铁三角”是如何运作的?营销LTC变革与“铁三角”啥关系?--LTC专家许浩明老师分享
- 宇枫资本如何挑选靠谱理财平台
- echarts-横坐标文字竖着显示和倾斜45度显示
- window10 pl2303驱动解决
- vertica MySQL_MySQL数据库之Vertica数据库的用法
- C++ 多种取整函数的使用和区别: ceil() floor() round() trunc() rint() nearbyint()
- 计算机网络之面试常考
- LINUX 指令学习
- 跨考计算机复试自我介绍,复试之自我介绍_跨考网
- mysql有什么不同_mysql 和 mysql2 有什么不一样
- 实现shiro-remember功能
热门文章
GIMPS梅森素数搜寻及相关算法综述 1. 梅森素数简介 2. GIMPS 项目 3. 卢卡斯-莱默测验 1. 梅森素数简介 梅森数是指形如 2n−1{\displaystyle 2^{n}-1}2n ...
1.什么是模幂运算问题 给出a, k, mod 计算ak(%mod)a^k (\%mod)ak(%mod)的值 k是一个非常大的正整数(超过1e7) 附,一个可以提交的地方: leetcode 372 ...
前言 语音识别是模式识别的一个分支,又从属于信号处理科学领域,同时与语音学.语言学.数理统计及神经生物学等学科有非常密切的关系.语音识别的目的就是让机器"听懂"人类口述的语言,包括 ...
项目实训记录系列博客 一马当先,争做国家栋梁. 博客说明 本博客初衷是用于学校项目实训知识梳理.工作内容.收获感悟的记录. 若能在您的学习之路上有所帮助,不胜荣幸.但若需转载,也请注明出处. 博客包含 ...
标题:jvm学习第十.十一天.十二天-垃圾回收器 学习内容: 1.垃圾回收的相关概述 2. 垃圾回收相关算法 3. 垃圾回收器 内容详情: 1.垃圾回收的相关概述 什么是垃圾( Garbage)? 垃 ...
1.道格拉斯-普克算法(Douglas–Peucker) 道格拉斯-普克算法(Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法.迭代适应点算法.分裂与合并算法)是将曲 ...
一.引言 光学图像识别技术是一种有较高鉴别率的技术,具有高度并行性.容量大.速度快的特点,特別适用于信息的快速和实时处理.光学相关是光学模式识别中的一种主要方法.无论是空间匹配滤波相关或是联合变换相关 ...
搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排).系统架构.常见问题.算法项目实战总结.技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排 ...
1.mod运算的性质 结合律 ((a+b) mod p + c)mod p = (a + (b+c) mod p) mod p ((a*b) mod p * c)mod p = (a * (b*c) ...