首页 > 其他分享 >模与同余

模与同余

时间:2024-07-08 15:52:01浏览次数:15  
标签:lfloor frac pmod bmod rfloor 模与 equiv 同余

  • \(a \equiv b \pmod n \Leftrightarrow (a - b) \bmod n = 0 \Leftrightarrow n | (a - b)\)
  • \(a\bmod n < n\)
  • \((a \pm b) \bmod n = ((a \bmod n) \pm (b \bmod n)) \bmod n\)
  • \((a \cdot b) \bmod = ((a \bmod n) \cdot (b \bmod n)) \bmod n\)
  • \(a \equiv b \pmod n, c \equiv d \pmod n \Rightarrow (a \pm c) \equiv (b \pm d) \pmod n\)
  • \(a \equiv b \pmod n, c \equiv d \pmod n \Rightarrow (a \pm c) \equiv (b \pm d) \pmod n\)
  • \(ac \equiv bc \pmod n \Rightarrow a \equiv b \pmod{\frac{n}{\gcd(n, c)}}\)
  • \(k\in \mathbb{N}_+,a \bmod n = (a \bmod kn) \bmod n\)
  • \(k|a,\frac{a}{k} \bmod n = \frac{a \bmod kn}{k}\)
  • \(a>n,a \bmod n < \frac{a}{2}\)
  • 费马小定理
  • 三种方法求逆元
  • 龟速乘

定义

模:设 \(a\) 为整数,\(n\) 为正整数,定义

\[a \bmod n = \begin{cases} a - \lfloor \frac{a}{n} \rfloor n & a \geq 0 \\ -(-a \bmod n) & a < 0 \end{cases} \]

这与 C++ 中的取模运算符的行为一致。

同余:若,\((a - b) \bmod n = 0\),则称 \(a\) 与 \(b\) 在模 \(n\) 的意义下同余,记作

\[a \equiv b \pmod n \]

\(a \equiv b \pmod n \Leftrightarrow (a - b) \bmod n = 0 \Leftrightarrow n | (a - b)\)

\(a,b\) 均为正整数时,此式等价于 \(a\bmod n = b\bmod n\)

无特别说明,以下与模、同余相关的数均是非负整数。

性质

性质 1

\[a \bmod n < n \]

证明:

假设 \(a \bmod n \geq n\),则

\[\begin{aligned} a \bmod n & \geq n \\ a - \lfloor \frac{a}{n} \rfloor n & \geq n \\ a & \geq n + \lfloor \frac{a}{n} \rfloor n \\ a & \geq n \cdot (\lfloor \frac{a}{n} \rfloor + 1) \\ \frac{a}{n} & \geq \lfloor \frac{a}{n} \rfloor + 1 \\ \end{aligned} \]

为 \((1)\) 式。设 \(\frac{a}{n} = x + p, x \in N, p \in [0, 1)\)。则

\[\begin{aligned} \frac{a}{n} & \geq \lfloor \frac{a}{n} \rfloor + 1 \\ x + p & \geq \lfloor x + p \rfloor + 1 \\ x + p & \geq x + 1 \\ p & \geq 1 \end{aligned} \]

,与 \(p \in [0, 1)\) 矛盾,故原命题成立。

根据性质 \(1\),对于 \(a \bmod n\) 可以设 \(a = k \cdot n + z, z < n\),则 \(z = a \bmod n, k = \lfloor\frac{a}{n}\rfloor\)

性质 2

\[(a \pm b) \bmod n = ((a \bmod n) \pm (b \bmod n)) \bmod n \]

证明:

\[\begin{aligned} RHS &= a -\lfloor \frac{a}{n} \rfloor n \pm (b - \lfloor \frac{b}{n} \rfloor n) - \lfloor \frac{a -\lfloor \frac{a}{n} \rfloor n \pm (b - \lfloor \frac{b}{n} \rfloor n) \rfloor}{n} \rfloor n \\ &= a -\lfloor \frac{a}{n} \rfloor n \pm b \mp \lfloor \frac{b}{n} \rfloor n - \lfloor \frac{a -\lfloor \frac{a}{n} \rfloor n \pm b \mp \lfloor \frac{b}{n} \rfloor n}{n} \rfloor n \\ &= a \pm b - \lfloor \frac{a}{n} \rfloor n \mp \lfloor \frac{b}{n} \rfloor n - \lfloor \frac{a \pm b -\lfloor \frac{a}{n} \rfloor n \mp \lfloor \frac{b}{n} \rfloor n}{n} \rfloor n \\ &= a \pm b - n(\lfloor \frac{a}{n} \rfloor \mp \lfloor \frac{b}{n} \rfloor) - \lfloor \frac{a \pm b - n(\lfloor \frac{a}{n} \rfloor \mp \lfloor \frac{b}{n} \rfloor)}{n} \rfloor n \\ &= a \pm b - n(\lfloor \frac{a}{n} \rfloor \mp \lfloor \frac{b}{n} \rfloor) - \lfloor \frac{a \pm b}{n} - (\lfloor \frac{a}{n} \rfloor \mp \lfloor \frac{b}{n} \rfloor) \rfloor n \\ &= a \pm b - n(\lfloor \frac{a}{n} \rfloor \mp \lfloor \frac{b}{n} \rfloor) - \lfloor \frac{a \pm b}{n}\rfloor + \lfloor\lfloor \frac{a}{n} \rfloor \mp \lfloor \frac{b}{n} \rfloor \rfloor n \\ &= a \pm b - n(\lfloor \frac{a}{n} \rfloor \mp \lfloor \frac{b}{n} \rfloor) - \lfloor \frac{a \pm b}{n}\rfloor + (\lfloor \frac{a}{n} \rfloor \mp \lfloor \frac{b}{n} \rfloor) n \\ &= a \pm b - \lfloor \frac{a + b}{n} \rfloor n \\ &= LHS \end{aligned} \]

则原命题得证。

性质 3

\[(a \cdot b) \bmod = ((a \bmod n) \cdot (b \bmod n)) \bmod n \]

证明:

\[\begin{aligned} RHS &= (a - \lfloor\frac{a}{n}\rfloor n)(b - \lfloor\frac{b}{n}\rfloor n) - \lfloor \frac{(a - \lfloor\frac{a}{n}\rfloor n)(b - \lfloor\frac{b}{n}\rfloor n)}{n} \rfloor n \\ &= ab - \lfloor\frac{a}{n}\rfloor bn - \lfloor\frac{b}{n}\rfloor an + \lfloor\frac{a}{n}\rfloor\lfloor\frac{b}{n}\rfloor n^2 - \lfloor \frac{ab - \lfloor\frac{a}{n}\rfloor bn - \lfloor\frac{b}{n}\rfloor an + \lfloor\frac{a}{n}\rfloor\lfloor\frac{b}{n}\rfloor n^2}{n} \rfloor n \\ &= ab - \lfloor\frac{a}{n}\rfloor bn - \lfloor\frac{b}{n}\rfloor an + \lfloor\frac{a}{n}\rfloor\lfloor\frac{b}{n}\rfloor n^2 - \lfloor \frac{ab}{n} - \lfloor\frac{a}{n}\rfloor b - \lfloor\frac{b}{n}\rfloor a + \lfloor\frac{a}{n}\rfloor\lfloor\frac{b}{n}\rfloor n\rfloor n \\ &= ab - \lfloor\frac{a}{n}\rfloor bn - \lfloor\frac{b}{n}\rfloor an + \lfloor\frac{a}{n}\rfloor\lfloor\frac{b}{n}\rfloor n^2 - \lfloor\frac{ab}{n}\rfloor n + \lfloor\lfloor\frac{a}{n}\rfloor b \rfloor n + \lfloor\lfloor\frac{b}{n}\rfloor a \rfloor n - \lfloor\lfloor\frac{a}{n}\rfloor\lfloor\frac{b}{n}\rfloor n\rfloor n \\ &= ab - \lfloor\frac{a}{n}\rfloor bn - \lfloor\frac{b}{n}\rfloor an + \lfloor\frac{a}{n}\rfloor\lfloor\frac{b}{n}\rfloor n^2 - \lfloor\frac{ab}{n}\rfloor n + \lfloor\frac{a}{n}\rfloor bn + \lfloor\frac{b}{n}\rfloor an - \lfloor\frac{a}{n}\rfloor\lfloor\frac{b}{n}\rfloor n^2 \\ &= ab - \lfloor\frac{ab}{n}\rfloor n \\ &= LHS \end{aligned} \]

则原命题得证。

性质 4

\[a \equiv b \pmod n, c \equiv d \pmod n \Rightarrow (a \pm c) \equiv (b \pm d) \pmod n \]

证明:

\( a \equiv b \pmod n \Leftrightarrow n | (a - b) \\ c \equiv d \pmod n \Leftrightarrow n | (c - d) \\ (a \pm c) \equiv (b \pm d) \pmod n \Leftrightarrow n | (a \pm c - (b \pm d)) \\ \because n | (a - b),n | (c - d) \\ \therefore n | ((a - b) \pm (c - d)) \\ \therefore n | ((a \pm b) - (c \pm d)) \\ \therefore (a \pm c) \equiv (b \pm d) \pmod n \)

则原命题得证。

性质 5

\[a \equiv b \pmod n, c \equiv d \pmod n \Rightarrow ac \equiv bd \pmod n \]

证明:

\( a \equiv b \pmod n \Leftrightarrow n | (a - b) \\ c \equiv d \pmod n \Leftrightarrow n | (c - d) \\ ac \equiv bd \pmod n \Leftrightarrow n | (ac - bd) \\ \because ac - bd = ac - bc + bc - bd = c(a - b) + b(c - d) \\ 又 n | (a - b), n | (c - d) \\ \therefore n | (ac - bd) \\ 即得 ac \equiv bd \pmod n \)

原命题得证。

性质 6

\[ac \equiv bc \pmod n \Rightarrow a \equiv b \pmod{\frac{n}{\gcd(n, c)}} \]

证明:

设 \(g=\gcd(c,n)\),则有 \(k_1, k_2 \in \mathbb{Z}\) 满足
\( \begin{cases} k_1 \cdot g = c \\ k_2 \cdot g = n \end{cases} \)

\(ac \equiv bc \pmod n \Leftrightarrow n | c(a-b)\),即 \(k_2g | k_1g(a - b)\)

则存在 \(q \in \mathbb{Z}\),满足 \(q \cdot k_2g = k_1g(a-b) \Rightarrow q \cdot k_2 = k_1(a-b)\),即 \(k_2|k_1(a - b)\)。

\( \because \gcd(k_1, k_2) = 1 \\ \therefore k_2|(a-b) \),即
\( \frac{n}{\gcd(c,n)}|(a-b) \\ \therefore a \equiv b \pmod{\frac{n}{\gcd(n, c)}} \)

原命题得证。

性质 7

\[k\in \mathbb{N}_+,a \bmod n = (a \bmod kn) \bmod n \]

证明:

\[\begin{aligned} RHS &= a - \lfloor\frac{n}{kn}\rfloor kn - \lfloor\frac{a - \lfloor\frac{n}{kn}\rfloor kn}{n}\rfloor n \\ &= a - \lfloor\frac{n}{kn}\rfloor kn - \lfloor\frac{a}{n} - \lfloor\frac{n}{kn}\rfloor k\rfloor n \\ &= a - \lfloor\frac{n}{kn}\rfloor kn - \lfloor\frac{a}{n}\rfloor n + \lfloor\lfloor\frac{n}{kn}\rfloor k\rfloor n \\ &= a - \lfloor\frac{n}{kn}\rfloor kn - \lfloor\frac{a}{n}\rfloor n + \lfloor\frac{n}{kn}\rfloor kn \\ &= a - \lfloor\frac{a}{n}\rfloor n \\ &= LHS \end{aligned} \]

则原命题得证。

性质 8

\[k|a,\frac{a}{k} \bmod n = \frac{a \bmod kn}{k} \]

证明:

\[\begin{aligned} RHS &= \frac{a - \lfloor\frac{a}{kn}\rfloor kn}{k} \\ &= \frac{a}{k} - \lfloor\frac{a}{kn}\rfloor n \\ &= \frac{a}{k} - \lfloor\frac{\frac{a}{k}}{n}\rfloor n \\ &= LHS \end{aligned} \]

则原命题得证。

性质 9

\[a>n,a \bmod n < \frac{a}{2} \]

证明:

\(a = k \cdot n + z, z < n\),则 \(z = a \bmod n\)。

\[\begin{aligned} z &< n \\ z &< kn \\ 2z &< kn + z \\ 2z &< a \\ z &< \frac{a}{2} \end{aligned} \]

即 \(a\bmod n < \frac{a}{2}\),原命题得证。

模乘法的逆元

定义

设 \(a \in Z, n \in N_+\),若整数 \(b\),满足

\[ab \equiv 1 \pmod n \]

则称 \(b\) 为 \(a\) 模 \(n\) 的逆元,记 \(b = a^{-1}\)

性质

性质 1

\[对于 aa^{-1}\equiv 1 \pmod n 当且仅当 gcd(a, n) = 1,a^{-1} 才存在。 \]

证明:

反证法。假设 \(\gcd(a, n) = g > 1\),存在 \(a^{-1}\) 满足 \(aa^{-1}\equiv 1 \pmod n\),则有 \(k_1, k_2\) 满足
\( \begin{cases} k_1 \cdot g = a \\ k_2 \cdot g = n \end{cases} \)

\( aa^{-1} \bmod n = k_1ga^{-1} \bmod k_2g = k_1ga^{-1} - \lfloor \frac{k_1ga^{-1}}{k_2g} \rfloor k_2g = g(k_1a^{-1} - \lfloor \frac{k_1a^{-1}}{k_2} \rfloor k_2) \)

因为 \(g > 1\),所以 \(g(k_1a^{-1} - \lfloor \frac{k_1a^{-1}}{k_2} \rfloor k_2) \neq 1\),即 \(aa^{-1} \bmod n \neq 1\),与 \(aa^{-1}\equiv 1 \pmod n\) 矛盾,故原命题成立。

性质 2

\[对于 aa^{-1}\equiv 1 \pmod n,若存在 a^{-1},则 a^{-1} 在模 n 的意义下唯一 \]

证明:

设 \(a_1^{-1},a_2^{-1}\) 满足
\( \begin{cases} aa_1^{-1} \equiv 1 \pmod n \\ aa_2^{-1} \equiv 1 \pmod n \end{cases} \)

则 \(aa_1^{-1} \equiv aa_2^{-1} \pmod n\),根据模的性质 \(6\) 得 \(a_1^{-1} \equiv a^{-1} \pmod {\frac{n}{gcd(a,n)}}\),根据同余的性质 \(1\),得 \(\gcd(a, n) = 1\),则 \(a_1^{-1} \equiv a^{-1} \pmod n\),原命题得证。

费马小定理

\[p \in \mathbb{P},a \in \mathbb{N},则 a^p \equiv a \pmod n \]

证明:略。

求法

给定 \(a > n\),求 \(aa^{-1}\equiv 1 \pmod n\),中的 \(a^{-1}\)

若 \(n \in \mathbb{P}, \gcd(a,n) = 1\),利用费马小定理,则 \(a^{n-1} \equiv 1 \pmod n \Rightarrow aa^{n-2} \equiv 1 \pmod n\),\(a^{n-2}\) 即为 \(a^{-1}\)。

求 \(1 \sim n\) 模 \(p\) 意义下的逆元,其中 \(p \in P\)

方法一

对于 \(i \in [1, n] \cap \mathbb{Z}\)

\[\begin{aligned} p \bmod i &= p - \lfloor\frac{p}{i}\rfloor i \\ p \bmod i + \lfloor\frac{p}{i}\rfloor i &= p \\ p \bmod i + \lfloor\frac{p}{i}\rfloor i &\equiv 0 \pmod p \\ \lfloor\frac{p}{i}\rfloor i &\equiv p \bmod i\pmod p \\ \lfloor\frac{p}{i}\rfloor &\equiv \frac{p \bmod i}{i}\pmod p \\ \frac{1}{i} &\equiv \frac{\lfloor\frac{p}{i}\rfloor}{p \bmod i}\pmod p \\ \end{aligned} \]

\(\frac{\lfloor\frac{p}{i}\rfloor}{p \bmod i}\) 即为 \(i\) 在模 \(p\) 意义下的逆元。枚举 \(i\),对于 \(\lfloor\frac{p}{i}\rfloor\) 可以 \(O(1)\) 求出,对于 \(\frac{1}{p \bmod i} \bmod n\),以为 \(p \bmod i < i\) 所以在求 \(\frac{1}{i} \bmod n\) 之前一定求出来了,\(O(1)\) 调用即可。综上时间复杂度 \(O(n)\),空间复杂度 \(O(n)\)

void calc_inv() {
    inv[1] = 1;
    for(int i = 2; i <= n; i++)
        inv[i] = (((-1ll * (p / i) % p) * inv[p % i]) % p + p) % p;
}

方法二

根据 \(\frac{1}{i!}=\frac{i+1}{(i+1)!}\),可以按一下方法求 \(1 \sim n\) 的逆元:

  • 预处理 \(1 \sim i\) 的阶乘数组,时间复杂度 \(O(n)\)
  • 计算 \(n!\) 的逆元,时间复杂度 \(O(\log p)\)
  • 从 \(\frac{1}{n!}\) 利用 \(\frac{i}{i!} = \frac{1}{(i-1)!}\),计算出 \(1 \sim n\) 的阶乘的逆元,时间复杂度 \(O(n)\)
  • 求出 \(1 \sim n\) 的逆元 \(\frac{1}{i} \equiv \frac{1}{i!} \cdot (i - 1)! \pmod n\),时间复杂度 \(O(n)\)

综上时间复杂度 \(O(3n + \log p) = O(n)\)

ll f[N]; // x!
ll g[N]; // (x!)^-1 mod m
ll h[N]; // x^-1

ll quick_pow(ll a, ll p, ll m) {
	ll res = 1;
    a %= m;
	while(p)
    {
		if(p & 1)
			res = (res * a) % p;
		a = (a * a) % p;
		p >>= 1;
	}
	return ans % m;
}

void calc(ll n, ll p) {
	for(int i=1; i<=n; ++i)
		f[i] = f[i - 1] * i % p;
	g[n] = quick_pow(f[n], p - 2, p);
	for(int i = n - 1; i >= 1; --i)
		g[i] = g[i + 1] * (i + 1) % p;
	for(int i = 1; i <= n; ++i)
		h[i] = g[i] * f[i - 1] % p;
}

若乘法溢出,可以仿照快速幂,写龟速乘

ll mul(ll a, ll b, ll m) {
    ll res = 0;
    while(b)
    {
        if(b & 1)
            res = (res + a) % m;
        a = (a + a) % m;
        b >>= 1;
    }
    return res % m;
}

标签:lfloor,frac,pmod,bmod,rfloor,模与,equiv,同余
From: https://www.cnblogs.com/kuailedetongnian/p/18288921

相关文章

  • 基于负相关误差函数的4集成BP神经网络matlab建模与仿真
    1.算法运行效果图预览(完整程序运行后无水印)   2.算法运行软件版本MATLAB2022a 3.部分核心程序while(Index<=Max_iteration)Indexjj=1;error2=zeros(Len,KER);while(jj<=Len)fork=1:No;d(k)=T(jj);end......
  • 同余
    1.模运算基本性质基本概念:若整数\(a,b\)除以\(p\)的余数相等,则称\(a,b\)在模\(p\)意义下同余,记作\(a\equivb\pmod{p}\)或者\(a\bmodp=b\bmodp\)。模运算的定义:\[a\bmodp=\begin{cases}a-p\lfloor\dfrac{a}{p}\rfloor&a\geq0\\-(-a\bmodp)&a<0......
  • B站UP主【动态系统的建模与分析】2_电路系统建模_基尔霍夫定律题目解析
    视频链接选定回路,下面开始求解由图分析所以求导代入得分析过程:式①化简得与,即与的关系式③结合上式结果,化简得与的关系式②化简得的积分与的关系式④代入上式得最终结果......
  • 由AtCoder_ABC357D引发的除法同余学习
    鉴于最近的Atcoder周赛又出现除法求余,下定决心学习逆元相关内容同余概述定义同余定义:若a和b是整数,且m|(a-b),则称a和b模m同余。即两者除以m得到的余数相同。剩余系:一个模m完全剩余系是一个整数集合,任何一个整数恰好与该集合中的一个元素模m同余。例如0,1,...,m-1的集......
  • 【科普向】【文末附gpt升级秘笈】《庆余年》凤冠之工艺探究——Blender建模与3D打印之
    《庆余年》凤冠之工艺探究——Blender建模与3D打印之奥秘一、引言昔者,《庆余年》之热播,引发天下观众之热议。今者,其续作《庆余年2》之中,一场盛大的婚礼更是瞩目。而此婚礼之上,唯一之凤冠,竟出自一款名为Blender之软件之手,辅以3D打印之技术,成就其非凡之美。夫此软件,诞生于三十......
  • 从CF1660F2看同余分组
    https://codeforces.com/contest/1660/problem/F2同余分组,树状数组维护逆序对先承继F1的做法,维护一个前缀和数组,让s[i]=='+'为\(1\),s[i]=='-'为\(-1\)。那么要满足两个条件:\(pre_r-pre_l\leq0\)要么加减号相同,要么减号更多(只有减号能减少)\(pre_r-pre_l......
  • P6610 [Code+#7] 同余方程
    P6610[Code+#7]同余方程首先可以中国剩余定理。至于为什么\(a,b\)在满足同余条件后\(a^2+b^2\)仍然满足,是因为根据中国剩余定理的过程,会得到只有当前方程结果为\(a\)的数加起来,所以不管套什么函数都是对的。然后就是推式子了。\[\begin{aligned}ans&=\sum_{a+b\equiv......
  • 线性同余-常见语言编译器参数
    Sourcem(multiplier) a   (increment) coutputbitsofseedin rand() /Random(L)NumericalRecipes23216645251013904223 Borland C/C++232226954771bits30..16in rand(),30..0inlrand()glibc (usedby GCC)[5]231110351524512345b......
  • [学习笔记] 丢番图方程 & 同余 & 逆元 - 数论
    首先,他们几个都是兄弟,有着极大的相似性。另外,他们的各自的思想都能够很好的服务于另外几个,有助于加深理解。线性丢番图方程丢番图不是个图啊!他是个man……——百度百科现在主要说的是二元线性丢番图方程:通用形式为\(ax+by=c\)。其中常数全都为整数。很像不定方程对吧?现在在......
  • 「NOIP2012」同余方程 题解!!
    嗨嗨嗨!又是我想写这道题,我们就需要掌握:拓展欧几里得顾名思义,它就是欧几里得算法(人话:辗转相除法)的proMax版本别告诉我你不会辗转相除法拓展欧几里得的作用是求对于方程\[a*x+b*y=gcd(a,b)\]解出x,y的值。让我们一步步分析!贴个辗转相除板子先:voidojld(inta,intb){ i......