https://en.wikipedia.org/wiki/Modular_arithmetic#Integers_modulo_n

模算术: 整数达到特定值时会‘ 折返 ’ 回来—— 模数 modulus(moduli)

例如: 时钟 modulo 12. 且根据定义, 12 不仅和12一致,还和0一致。

模 n 就是除数为 n 的意思。

1. 定义同余关系

  如果  a-b=kn   那么说 a,b 是模n同余。n为正整数,k为整数。

  a≡b (mod n)

  n为同余的模数。

  同余关系写为: a=kn+b

  a=pn+r

  b=qn+r

  r 为共同余数。0<=r<n

  如 -8 ≡ 7 (mod 5)    2 ≡ -3 (mod 5)  -3 ≡ -8 (mod 5)   商可以为负数,余数一定要为 正

  性质1: primitive root modulo n  原根模n: 如果对于与 n互质的每一个整数 a, 都存在整数 k 使得 gk≡a (mod n) , 则 g 为原根。

    n 拥有 g 当且仅当 n=2, 4, pk,2pk


2. 同余类 classes

  ' 同余模n' 是一个等价关系,整数 a 的等价类为一个集合:  $ \overline{\mathit{a}}_{n}=\left \{ \cdots , a-2n,a-n,a,a+n,a+2n,\cdots  \right \}$

  这个集合就是 a,n 的等价类,或残余类。


3. 残余系统

  整数集合 $ \left \{ 0,1,2, \cdots , n-1  \right \} $   被称为 模n的最小残余系统

  对于 n 个整数的集合,如果其中没有2个同余模 n ,那么被称为 模n的完全残余系统

  例子:

    取定 n=4, 那么 ‘ 同余类 ’ 可以为:

    (1)  a=1, set={ -3 ,1, 5,9,13,…}  ,余数为 1

    (2) a=2, set={-2, 2, 6, 10, 14, }, 余数为 2

    (3) a=3, set={ -1, 3 , 7, 11, 15}, 余数为 3

    (4) a=4, set={0, 4 , 8, 12, 16}, 余数为 0

    从上面4个式子中各取一个元素出来,就组合成了 ‘’ 完全残余系统‘ ; ‘其中,’ 最小残余系统‘’  为{1,2,3,4}


4. 约化残余系统 RRS

  欧拉函数 φ: 输入为整数 n, 输出为小于n 且与n互质的正整数个数。

  RRS 中的元素为 φ(n) 个,它们与 n 互质,且彼此不同余!如 n=4 时, {5,15} 为 RRS


5. 整数模 n  integers modulo n

  所有 ‘ 同余类’ 的集合称为 ‘ 整数模n的环’; 也就是说, Z/nZ 里的元素还是集合,如3中的(1) (2) (3) (4) , 共有n个

  我们可以在这个上定义加法,减法和乘法:

  

  这些 集合 与 集合 的运算显然是成立的。

  例如,环 Z/24Z 中     因为33除以24,余数为9

  

  当且仅当 n 为质数时, 这个环是个有限域。

模算术 modular arithmetic的更多相关文章

  1. Modular Arithmetic ( Arithmetic and Algebra) CGAL 4.13 -User Manual

    1 Introduction Modular arithmetic is a fundamental tool in modern algebra systems. In conjunction wi ...

  2. HDU2114 Calculate S(n) (取模算术)

    Calculate S(n) Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  3. 阶乘相关<同余与模算术>

    题意: 题目很简明: 令S[n]=1*1!+2*2!+3*3!+4*4!+....+n*n! 求S[n]%10000007 多组测试数据 每组一个n n的范围:1<=n<=1000000 ...

  4. UVA-10929-You can say 11(秦九昭算法+同余与模算术)

    原题链接 1000位大数取余: 秦九昭算法+同余与模算术: 1314 = (((1)*10+3)*10+1)*10+4 ( a + b ) % n = ( ( a % n ) + ( b % n ) ...

  5. Modular arithmetic and Montgomery form 实现快速模乘

    题目: 电音之王 题解: 求数列前n项相乘并取模 思路: ①.这题的乘法是爆long long的,可以通过快速幂的思想去解决(按数位对其中的一个数进行剖分).当然你的乘法会多出一个log的复杂度... ...

  6. 算术编码Arithmetic Coding-高质量代码实现详解

    关于算术编码的具体讲解我不多细说,本文按照下述三个部分构成. 两个例子分别说明怎么用算数编码进行编码以及解码(来源:ARITHMETIC CODING FOR DATA COIUPRESSION): ...

  7. PythonStudy——算术运算符 Arithmetic operator

    # 减法 # 加法 print(10 + 20) print('abc' + 'def') print([1, 2, 3] + [4, 5, 6]) Output: 30  abcdef  [1, 2 ...

  8. tourist's modular arithmetic class

    #include <bits/stdc++.h> using namespace std; template <typename T> T inverse(T a, T m) ...

  9. UVa-11582:Colossal Fibonacci Numbers!(模算术)

    这是个开心的题目,因为既可以自己翻译,代码又好写ヾ(๑╹◡╹)ノ" The i’th Fibonacci number f(i) is recursively defined in the f ...

  10. 普林斯顿数学指南(第一卷) (Timothy Gowers 著)

    第I部分 引论 I.1 数学是做什么的 I.2 数学的语言和语法 I.3 一些基本的数学定义 I.4 数学研究的一般目的 第II部分 现代数学的起源 II.1 从数到数系 II.2 几何学 II.3 ...

随机推荐

  1. js_问题记录2022年6月24日19:35:12

    小问题中的大问题 新建子js脚本一定记得创建函数,不然写什么都无法实现 比如 新建了new1.js脚本,首先需要创建function后才能在里面进行参数操作和调用 js实现的功能: 获取到对应的id= ...

  2. 使用 Gradle 构建包含所有依赖的 JAR 包

    在 Gradle 中构建一个包含所有依赖的 jar 包(通常被称为"fat jar"或者"uber jar"),你可以使用 shadowJar 插件来包含编译的 ...

  3. SpringMVC:SpringMVC执行流程

    目录 SpringMVC常用组件 DispatcherServlet初始化过程 ①初始化WebApplicationContext ②创建WebApplicationContext ③Dispatch ...

  4. SpringMVC:文件上传和下载

    文件下载 ResponseEntity用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览器的响应报文 使用ResponseEntity实现下载文件的功能 @RequestMapping(& ...

  5. 语音识别 可以跑在MCU上吗

    Ref: https://developer.arm.com/Additional%20Resources/Video%20Tutorials/AITechTalk-Video-Speech%20re ...

  6. 9.5内网横向&代理&隧道

    Socks代理思路: 工具:nps.frp.ngrok.reGeorg.sockscap64.earthworm.proxifier.proxychains 知识点 1.内外网简单知识 2.内网1和内 ...

  7. manim边学边做--通用多边形

    manim提供了通用多边形模块,可以绘制任意的多边形. 通用多边形模块有两种,Polygon和Polygram. Polygon是一个几何学术语,主要指的是由三条或三条以上的线段首尾顺次连接所组成的平 ...

  8. js 翻译 c# 注意事项

    1. split('') 在 c# 是不可以 .Split("") 的 要写 ToCharArray() 更新: 2021-09-25, split('') 是不好的写法, es6 ...

  9. [The Trellor] Chapter 1

    翻译软件真的翻不好,读英文小说要相信你的脑子. There's only one thing to do in Berlen - that is listening the sound of wind ...

  10. 《Spring Data JPA从入门到精通》内容简介、前言

    内容简介 本书以Spring Boot为技术基础,从入门到精通,由浅入深地介绍Spring Data JPA的使用.有语法,有实践,有原理剖析. 本书分为12章,内容包括整体认识JPA.JPA基础查询 ...