模运算及其性质

忘了是不是原创了,谁发现了地址请告知。


本文以c++语言为载体,对基本的模运算应用进行了分析和程序设计,以理论和实际相结合的方法向大家介绍模运算的基本应用。。

基本理论

  基本概念:

  给定一个正整数p,任意一个整数n,一定存在等式 n = kp + r

  其中kr是整数,且 0 ≤ r < p,称呼kn除以p的商,rn除以p的余数。

  对于正整数p和整数a,b,定义如下运算:

  取模运算:a % p(或a mod p),表示a除以p的余数。

  模p加法:(a + b) % p ,其结果是a+b算术和除以p的余数,也就是说,(a+b) = kp +r,则(a + b) % p = r

  模p减法:(a-b) % p ,其结果是a-b算术差除以p的余数。

  模p乘法:(a * b) % p,其结果是 a * b算术乘法除以p的余数。

  说明:

  1. 同余式:正整数abp取模,它们的余数相同,记做 a ≡ b % p或者a ≡ b (mod p)

  2. n % p得到结果的正负由被除数n决定,p无关。例如:7%4 = 3-7%4 = -37%-4 = 3-7%-4 = -3

基本性质

  (1)若p|(a-b),则a≡b (% p)。例如 11 ≡ 4 (% 7)18 ≡ 4(% 7)

  (2(a % p)=(b % p)意味a≡b (% p)

  (3)对称性:a≡b (% p)等价于b≡a (% p)

  (4)传递性:若a≡b (% p)b≡c (% p) ,则a≡c (% p)

运算规则

  模运算与基本四则运算有些相似,但是除法例外。其规则如下:

  (a + b) % p = (a % p + b % p) % p 1

  (a - b) % p = (a % p - b % p) % p 2

  (a * b) % p = (a % p * b % p) % p 3

  (a^b) % p = ((a % p)^b) % p 4

  结合率: ((a+b) % p + c) % p = (a + (b+c) % p) % p 5

  ((a*b) % p * c)% p = (a * (b*c) % p) % p 6

  交换率: (a + b) % p = (b+a) % p 7

  (a * b) % p = (b * a) % p 8

  分配率: ((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p 9

  重要定理:若a≡b (% p),则对于任意的c,都有(a + c) ≡ (b + c) (%p);(10

  若a≡b (% p),则对于任意的c,都有(a * c) ≡ (b * c) (%p);(11

  若a≡b (% p)c≡d (% p),则 (a + c) ≡ (b + d) (%p)(a - c) ≡ (b - d) (%p)

  (a * c) ≡ (b * d) (%p)(a / c) ≡ (b / d) (%p); (12

a≡b (% p),则对于任意的c,都有ac≡ bc (%p); (13


基本应用

1.判别奇偶数  2.判别素数3. 最大公约数  4.模幂运算


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

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

相关文章

c++ 显示图片_飞利浦256P1FR显示器一线直连MacBook使用体验分享

前言嗨&#xff0c;大家好&#xff0c;我是默咖&#xff0c;一个喜欢分享的数码控。最近刚忙完给媳妇升级桌面&#xff0c;自己就忍不住想要换一个Type-C直连MacBook Pro的显示器了&#xff0c;不仅仅为了可以单线直连MacBook Pro也是为了减少拓展坞再接一个转接头的麻烦&#…

ghost快速安装系统的详细步骤?

很多时候我们安装系统都是在很快的时间内给安装完毕&#xff0c;不用像原来那样安装一个系统需要一个多小时&#xff0c;有了ghost是比较方便&#xff0c;十几分钟就可以把系统安装完&#xff0c;这也是DIY爱好者的福音&#xff0c;没有事情的时候安装下自己的系统&#xff0c;…

利用位运算的模四算法

将数列a1,2,3,4,5,6,7...变成4,4,4,4,8,8,8,8,12,12...一个很巧妙的办法((a3)>>2)<<2,当然不用位运算就可以用(a3)-(a3)%4 // 模4编号的实现 #include <stdio.h> #include <stdlib.h> int main() {/*for(int i1;i<100;i){//printf("%d %d …

字符内存转成字符串_字符串内存内部

字符内存转成字符串本文基于我对StackOverflow的回答 。 我正在尝试解释String类如何存储文本&#xff0c;内部存储和常量池如何工作。 这里要理解的要点是String Java对象与其内容– private value字段下的char[]之间的区别。 String基本上是char[]数组的包装器&#xff0c;将…

python安装库报错Microsoft visual c++ 14.0 is required问题解决办法

下载安装包安装即可&#xff1a; https://964279924.ctfile.com/fs/1445568-239446865 or http://www.liangchan.net/liangchan/10220.html转载于:https://www.cnblogs.com/stkares/p/9384424.html

Apache PDFBox命令行工具:无需Java编码

在博客文章Apache PDFBox 2中 &#xff0c;我演示了将Apache PDFBox 2用作从Java代码中调用的库来操作PDF。 事实证明&#xff0c;Apache PDFBox 2还提供了可以直接从命令行直接使用的命令行工具 &#xff0c;而无需其他Java编码。 有几种命令行工具可用&#xff0c;我将在本文…

shocked的歌曲 类似shell_Shell Shocked歌词

Shell Shocked歌词添加日期&#xff1a;2014-11-04 时长&#xff1a;03分24秒 歌手&#xff1a;忍者神龟Kylie Minogue - Speakerphonewww.9ku.com 活在当下 制作LightsMindEyesHeartsLights (Flashin) Sound (Crashin)Minds (Blowin) Body (Rockin)Eyes (Lockin) Lips (Touchi…

除法上取整、下取整

C &#xff1d; A / B&#xff1b;// 默认就是下取整 C &#xff1d; (AB-1)/B; // 上取整算法

intellij idea

使用intellij idea的经验、会慢慢补全 目录 转载于:https://www.cnblogs.com/black-/p/9391846.html

ACM中Java使用总结

Java在ACM中的主要应用是大数类【个人见解】。做个小总结&#xff0c;留作模板用。 类名默认为Main。 输入&#xff1a; 声明一个输入对象cin;Scanner cinnew Scanner(System.in); 输入一个int值&#xff1a;Int acin.nextInt(); 输入一个大数&#xff1a;BigDecimal acin.next…

在分析了47,251个依赖关系之后,2016年排名前100的Java库

谁在上面&#xff0c;谁在后面&#xff1f; 我们分析了Github上的47,251个依赖关系&#xff0c;并抽取了前100个Java库 长周末我们最喜欢的消遣是浏览Github并搜索流行的Java库。 我们决定与您分享乐趣和信息。 我们分析了Github上前3,862个Java项目使用的12,059个独特Java库…

tensorflow源码编译教程_源码编译安装tensorflow 1.8

参考官方指南基本要求官网测试过的源代码配置如下&#xff1a;image也就是说&#xff0c;按照这个版本安装的话不应该再产生版本的问题了。我的配置ubuntu 16python 2.7nccl 2.3gcc 4.8.5cuda 7.1.4cudnn 9.0 (具体是9.0.176但是在./configure的那里不用输这么仔细&#xff0c;…

html2canvas关于图片不能正常截取

问题 首先说说遇到了什么问题。首先有这么一个需求。需要前端根据后端传过来数据&#xff0c;动态的生成图片。图片中的文案、背景图片、用户头像全部都是通过后端的接口获取。但是使用 html2canvas 生成的canvas有些图片成功的在canvas里生成了。但是有些图片无论如何都显示不…

tortoise清理本地分支_本地:延庆运污水环卫抽化粪池

北京兴百荣清洁公司是清理排水管道的技术服务中心。提供下水道疏通&#xff0c;化粪池清理&#xff0c;抽污水&#xff0c;化粪池清掏&#xff0c;管道清淤&#xff0c;下水道清洗&#xff0c;化粪池清理&#xff0c;抽粪&#xff0c;管道疏通&#xff0c;雨水管道清理&#xf…

C++矩阵优化算法

写在前面的话&#xff1a;此矩阵优化算法并非原创&#xff0c;笔者只是转述了一种智慧。 在C中&#xff0c;定义一个矩阵通常是这样的: class MyMatrix { ........ public: ........ float data[50000]; } 这里为了方便说明问题&#xff0c;使用固定大小的数…

win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程

由于工作需要&#xff0c;今天要在电脑上安装SQL Server 2005。以往的项目都是使用Oracle&#xff0c;MS的数据库还真的没怎么用过&#xff0c;安装Oracle已经轻车熟路&#xff0c;但装SQL Server好像还有点小麻烦&#xff0c;所以记录下来&#xff0c;以留备用。 ------------…

tensorflow中的Supervisor

tf.train.Supervisor()可以帮我们简化一些事情&#xff0c;可以保存模型参数和Summary&#xff0c;它有以下的作用&#xff1a; 1&#xff09;自动去checkpoint加载数据或初始化数据 &#xff0c;因此我们就不需要手动初始化或者从checkpoint中加载数据 2&#xff09;自身有一个…

jaxb 解析list元素_JAXB和根元素

jaxb 解析list元素XmlRootElement是人们习惯于与JAXB&#xff08;JSR-222&#xff09;一起使用的注释。 目的是将根元素与类唯一关联。 由于JAXB类映射到复杂类型&#xff0c;因此一个类有可能对应于多个根元素。 在这种情况下&#xff0c;无法使用XmlRootElement &#xff0c;…

抓娃娃机爪不动怎么办_黄子韬吃娃娃菜能把临时牙咬断?种植牙到底结实不结实?...

黄子韬的临时牙上热搜了&#xff0c;最高排名热搜榜第四位。有关牙齿的事儿瞬间让我这个口腔医生来了八卦之心&#xff0c;在看了后面的各种评论之后&#xff0c;我大概梳理清楚这到底是怎么回事了&#xff1a;小时候因为调皮所以摔断了门牙&#xff0c;前些日子门牙做了种植牙…

从SVN迁移到Git(包括SVN历史纪录)【最系统的讲解】

从SVN迁移到git有很多方法&#xff0c;最简单的就是使用git包自带的git svn命令&#xff08;git v1.7及以上&#xff09;。除此之外还有一些第三方的专门的转换工具如http://www.subgit.com/&#xff0c;https://www.atlassian.com/git/tutorials/migrating-overview/等。但是由…