模意义下及同余的公式整理

模意义下及同余的公式整理

我们在做同余或模意义下式子的时候,可以把元素都先处理到最简,然后就基本可以用普通的算式性质了。

最简的意思是若 a>pa>pa>p,把 a←a mod pa\leftarrow a\bmod pa←amodp。

模

  • a mod b=a−⌊ab⌋ba\bmod b=a-\lfloor\frac{a}{b}\rfloor bamodb=a−⌊ba⌋b
  • (a+b) mod p=(a mod p+b mod p) mod p(a+b)\bmod p=(a\bmod p+b\bmod p)\bmod p(a+b)modp=(amodp+bmodp)modp
  • (a−b) mod p=(a mod p−(b mod p)+p) mod p(a-b)\bmod p=(a\bmod p-(b\bmod p)+p)\bmod p(a−b)modp=(amodp−(bmodp)+p)modp
  • ab mod p=a mod p×b mod pab\bmod p=a\bmod p\times b\bmod pabmodp=amodp×bmodp
  • kp mod p=0kp\bmod p=0kpmodp=0

若 a<0a<0a<0:

令 a=−kp+ba=-kp+ba=−kp+b。其中 kkk 为非负的整数,b<0b<0b<0。

其中 kkk 是满足 −kp≥a-kp\ge a−kp≥a 的最小整数值。

则 a≡b( mod p)a\equiv b(\bmod p)a≡b(modp)。

  • 若 −p<a<0-p<a<0−p<a<0,a≡p−a( mod p)a\equiv p-a(\bmod p)a≡p−a(modp)

同余

  • a≡a( mod p)a\equiv a(\bmod p)a≡a(modp)
  • 若 a≡ba\equiv ba≡b,则 b≡ab\equiv ab≡a
  • 若 a≡b,b≡ca\equiv b,b\equiv ca≡b,b≡c,则 a≡ca\equiv ca≡c
  • 若 a≡ba\equiv ba≡b,则 a±c≡b±ca\pm c\equiv b\pm ca±c≡b±c
  • 若 a≡b,c≡da\equiv b,c\equiv da≡b,c≡d,则 a±c≡b±da\pm c\equiv b\pm da±c≡b±d
  • 若 a≡b( mod p)a\equiv b(\bmod p)a≡b(modp),则 ac≡bc( mod p)ac\equiv bc(\bmod p)ac≡bc(modp)

除法(乘法逆元):

若 xa≡1( mod p)xa\equiv 1(\bmod p)xa≡1(modp),则称 a≡x−1( mod p)a\equiv x^{-1}(\bmod p)a≡x−1(modp),也称 aaa 为 xxx 在模 ppp 意义下的乘法逆元。

怎么求就不用多说了,一般情况下 ppp 为质数,最小的 a=xp−2a=x^{p-2}a=xp−2。

或者 O(n)O(n)O(n) 递推求逆元。

所以模意义下的除法 ab≡ab−1( mod p)\frac{a}{b}\equiv ab^{-1}(\bmod p)ba≡ab−1(modp)。

  • 所以若 ac≡bc( mod p)ac\equiv bc(\bmod p)ac≡bc(modp),未必有 a≡b( mod p)a\equiv b(\bmod p)a≡b(modp)。
相关推荐
Navigator_Z21 分钟前
LeetCode //C - 1317. Convert Integer to the Sum of Two No-Zero Integers
c语言·算法·leetcode
wo_jack30 分钟前
C++ 入门笔记(十六):第16课 vector 模拟实现十问十答 —— 从三指针到迭代器失效
c++·后端·面试·stl·vector
D e re k ZH1 小时前
C++ 标准库算法全景指南
数据结构·c++·算法
冻柠檬飞冰走茶2 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
雪落漂泊2 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法
波力海苔夹心脆6753 小时前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
不会算法的笨小孩4 小时前
异常的使用以及会出现的问题
开发语言·c++·c++11·异常
LabVIEW开发4 小时前
LabVIEW 连接板:28 个端子怎么排,优先级怎么定
java·算法·labview
严肃小白兔5 小时前
MATLAB 数值计算中的精度与误差问题:浮点运算、误差传播与数值稳定性
人工智能·算法·matlab