模算术 modular arithmetic
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的更多相关文章
- 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 ...
- HDU2114 Calculate S(n) (取模算术)
Calculate S(n) Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- 阶乘相关<同余与模算术>
题意: 题目很简明: 令S[n]=1*1!+2*2!+3*3!+4*4!+....+n*n! 求S[n]%10000007 多组测试数据 每组一个n n的范围:1<=n<=1000000 ...
- UVA-10929-You can say 11(秦九昭算法+同余与模算术)
原题链接 1000位大数取余: 秦九昭算法+同余与模算术: 1314 = (((1)*10+3)*10+1)*10+4 ( a + b ) % n = ( ( a % n ) + ( b % n ) ...
- Modular arithmetic and Montgomery form 实现快速模乘
题目: 电音之王 题解: 求数列前n项相乘并取模 思路: ①.这题的乘法是爆long long的,可以通过快速幂的思想去解决(按数位对其中的一个数进行剖分).当然你的乘法会多出一个log的复杂度... ...
- 算术编码Arithmetic Coding-高质量代码实现详解
关于算术编码的具体讲解我不多细说,本文按照下述三个部分构成. 两个例子分别说明怎么用算数编码进行编码以及解码(来源:ARITHMETIC CODING FOR DATA COIUPRESSION): ...
- PythonStudy——算术运算符 Arithmetic operator
# 减法 # 加法 print(10 + 20) print('abc' + 'def') print([1, 2, 3] + [4, 5, 6]) Output: 30 abcdef [1, 2 ...
- tourist's modular arithmetic class
#include <bits/stdc++.h> using namespace std; template <typename T> T inverse(T a, T m) ...
- UVa-11582:Colossal Fibonacci Numbers!(模算术)
这是个开心的题目,因为既可以自己翻译,代码又好写ヾ(๑╹◡╹)ノ" The i’th Fibonacci number f(i) is recursively defined in the f ...
- 普林斯顿数学指南(第一卷) (Timothy Gowers 著)
第I部分 引论 I.1 数学是做什么的 I.2 数学的语言和语法 I.3 一些基本的数学定义 I.4 数学研究的一般目的 第II部分 现代数学的起源 II.1 从数到数系 II.2 几何学 II.3 ...
随机推荐
- Win32 拆分窗口
前两天学习了MFC的拆分窗口,今天来学习Win32 SDK下如何拆分窗口. win32是没有像MFC那样直接有函数方法拆分窗口,只能自己处理了. 1.在WM_CREATE消息中创建两个控件,TreeV ...
- TrueType 和 OpenType 的关系
OpenType 和 TrueType 都是字体文件格式,它们用于在数字设备中存储和渲染文本.虽然这两种格式都广泛使用,但它们在设计和功能上有一些重要区别. TrueType 是由苹果公司和微软公司在 ...
- Ubuntu 设置远程桌面(VNC)
连接 Xfce 4 远程桌面 下载 Xfce 4 桌面环境: sudo apt install -y xfce4 xfce4-goodies 这里会提示你设置显示管理器,我们设置 gdm3 就好. 安 ...
- JVM学习笔记之栈区
JVM学习笔记之栈区 本文主要内容: 栈是什么?栈帧又是什么?在JVM中,main方法调用say方法后,是怎么运行的?本文将详细讲解栈.希望大家学了之后,对栈有更深的了解. 心法:在JVM中,栈管运行 ...
- python requests 报错 Caused by ProxyError ('Unable to connect to proxy', OSError('Tunnel connection failed: 403 Tunnel or SSL Forbidden'))
背景:访问https接口,使用http代理 版本:requests: 2.31.0 从报错可以看出,是proxy相关的报错 调整代码,设定不使用代理,将http与https对应的proxy值置空即可( ...
- maven jetty指定端口号启动
mvn jetty 启动指定端口号 方法 mvn jetty:run -Djetty.port=端口号 备注: 通过以上命令在 windows 中 powershell 下运行时,可能会碰到以下问题: ...
- XAMPP Windows PHP-CGI 代码执行漏洞(CVE-2024-4577) | Goby漏洞预警
漏洞描述: PHP是一种在服务器端执行的脚本语言,在 PHP 的 8.3.8 版本之前存在命令执行漏洞,由于 Windows 的 "Best-Fit Mapping" 特性,在处理 ...
- java_day1_认识计算机,java环境,Java关键字、标识符、注释
一.认识计算机 1.组成: 硬件:cpu,内存,显卡,... 软件: 系统软件:WPS, wegame, steam, IDEA,..... 应用软件:WPS, wegame, steam, IDEA ...
- Kubernetes Pod生命周期(十七)
前面我们已经了解了 Pod 的设计原理,接下来我们来了解下 Pod 的生命周期.下图展示了一个 Pod 的完整生命周期过程,其中包含 Init Container.Pod Hook.健康检查 三个主要 ...
- 使用GrabCut做分割
主要完成了界面化设计,代码如下 import cv2 as cv import numpy as np import sys from PyQt5.Qt import * class MyWedige ...