2 同余

2 同余

2.1 模运算与同余

定义2-1(模运算):对于整数\(a,m>0\),有\(a\div m=q\cdots r\),将余数\(r\)定义为\(a\)模\(m\),记为\(a\;(mod\;m)\)。

定义2-2(同余):对于整数\(a,b,m>0\),如果\(m|(a-b)\),则称\(a\)与\(b\)模m同余,记为\(a\equiv b\;(mod\;m)\)

同余的基本性质:设\(a\equiv b\;(mod\;m)\),\(c\equiv d\;(mod\;m)\),则

  1. \(a+c\equiv b+d\;(mod\;m)\)
  2. \(ac\equiv bd\;(mod\;m)\)
  3. 对于任意整数\(x,y\),均有\(xa+yc\equiv xb+yd\;(mod\;m)\)
  4. 若\(k|m\Rightarrow a\equiv b\;(mod\;k)\),因为\(k|m|(a-b)\),即整除具有传递性。
  5. 若\(k\)是正整数,则有\(ak\equiv bk\;(mod\;mk)\)
  6. 若\((c,m)=1\)且\(ac\equiv bc\;(mod\;m)\),则有\(a\equiv b\;(mod\;m)\)
  7. 若\(a\equiv b\;(mod\;m_1)\),\(a\equiv b\;(mod\;m_2)\)且\((m_1,m_2)=1\),那么\(a\equiv b\;(mod\;m_1m_2)\)
  8. \(n\)是正整数,那么\(a^n\equiv b^n\;(mod\;m)\),性质2的特殊情况
  9. 若存在整系数多项式\(f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0\),那么\(f(a)\equiv f(b)\;(mod\;m)\)。性质1,2的推广。

证明上述性质的几种思路:

  • 利用定义2-2进行证明,即通过整除的观点来证明。
  • 将同余式化成等式的情况,例如,\(a-b=km+r_1,c-d=tm+r_2\)。这时候就可以通过整数间互素,整除的关系来处理。

同余实际上是一种等价关系(体现在性质1,2中),实际运算过程中利用这种等价关系,有时候可以有效降低计算量。例如,\(10^2\times2\equiv1^2\times2\equiv2\;(mod\;3)\),其中\(10\equiv1\;(mod\;3)\)。也就是说在模3的意义下,10和1是等价的。

定义2-3(同余模逆元):如果整数\(b(0<b<m)\)满足\(a\times b\equiv1\;(mod\;m)\),那么就称b为a在模m意义下的逆元。

定理2-1:对于整数\(a,m(m>0)\),a模m的逆元存在当且仅当\((a,m)=1\)。若逆元存在,那么逆元必然是唯一的。

利用在辗转相除法中定理1-3的推论进行证明

充分性证明:存在整数\(s,t\),使得\(as+mt=1\)。显然此时就有\(as\equiv1\;(mod\;m)\),因此此时s就是a模m的逆元。

必要性证明:因为存在整数s,使得\(as\equiv1\;(mod\;m)\),即存在整数k,使得\(as+mk=1\)。因此有\((a,m)=1\)。

唯一性证明:假设整数\(a\)存在两个逆元\(0\le s,s'\le m-1\),那么\(as\equiv as'\equiv1(mod\;m)\),于是有\(m|a(s-s')\)。又因为\((a,m)=1\),所以\(m|(s-s')\)。又因为\(0\le s,s'\le m-1\),所以\(0\le|s-s'|\lt m\),故\(s-s'=0\),即逆元唯一。

例题:已知17和26的最大公因子为1,所以17模26的逆元存在,又因为
\[
17\times(-3)+26\times2=1
\]
所以,\(-3\equiv23\;(mod\;26)\),即17模26下的逆元为23。

2.2 剩余系

2.2.1 完全剩余系

设\(a,b,c,n(n>0)\)是整数,同余是一种等价关系,同余具有以下性质:

  • 反身性:\(a\equiv a\;(mod\;m)\)
  • 对称性:如果\(a\equiv b\;(mod\;m)\),那么\(b\equiv a\;(mod\;m)\)
  • 传递性:如果\(a\equiv b\;(mod\;m)\),\(b\equiv c\;(mod\;m)\),那么\(a\equiv c\;(mod\;m)\)

定义2-4:给定\(m>0\),对于每个满足条件\(0\le r\le m-1\)的整数r,我们将集合\([i]=\{n|n\equiv i\;(mod\;m)\}\)称为模

m的一个剩余类\([i]\),即由余数相同的整数构成m的一个剩余类。

由上述定义可知,我们可以将整数集划分成m个剩余类(集合),即\([0],[1],\cdots,[m-1]\)。这些剩余类具有以下性质:

  • \([i]\cap[j]=\emptyset,\;0\le i,j\le m-1\)
  • \([0]\cup[1]\cup\cdots[m-1]=Z\)

定义2-5:给定\(m>0\),从模m的每一个剩余类中各取一个数\(x_i\),则称集合\(\{x_0,x_1,\cdots,x_{m-1}\}\)是模\(m\)的一个完全剩余系

例如:

  • 最小非负完全剩余系:\(\{0,1,\cdots,m-1\}\)
  • 最小正完全剩余系:\(\{1,2,\cdots,m\}\)

定理2-2:整数集合A是模m的完全剩余系的充要条件是A中含有m个整数,并且A中的任意两个整数对模m不同余。

证明:根据定义很容易就可以证明定理2-2。

定理2-3:设\(m\ge0,(a,m)=1\),若\(\{x_1,x_2,\cdots,x_{m}\}\)是模m的一个完全剩余系,那么\(\{ax_1+b,ax_2+b,\cdots,ax_{m}+b\}\)也是模m的完全剩余系。

证明:根据定理2-2,只需要证明\(\{ax_1+b,ax_2+b,\cdots,ax_{m}+b\}\)中的元素两两不同余即可,假设集合中存在两个元素模m同余,即存在\(1\le i,j\le m\),使得
\[
\begin{aligned}
&ax_i+b\equiv ax_j+b\;\mod m\\Rightarrow\;&m|a(x_i-x_j)\\Rightarrow\;&m|(x_i-x_j)\\Rightarrow\;&x_i\equiv x_j\mod m
\end{aligned}
\]
与假设矛盾,因此集合中的元素两两不同余,所以定理2-3得证。

完全剩余系关于模m余数的分布在整数意义上是连续的,即余数为\(0,1,2,\cdots,m-1\)均包含在集合中,其中b的作用只是对完全剩余系进行了一次等间距平移,可以保持这种连续性。

2.2.2 简化剩余系

定义2-6:设\([i]\)是模m的一个剩余类,对于任意\(a\in[i]\),都有\((a,m)=1\),则称\([i]\)是模m的一个简化剩余类。

在模m的一个剩余类中,如果有一个数与m互素,那么该剩余类的每一个数都和m互素,这是因为
\[
1=as+mt=(a+km)s+m(t-ks)
\]
对于任意的整数k都是成立的。

因此模m简化剩余系的个数就等于\(1,2,\cdots,m-1,m\)中与m互素的数的个数,我们将这个数记为\(\varphi(m)\),并称函数\(\varphi(\cdot)\)为欧拉函数。显然,对于素数p而言,\(\varphi(p)=p-1\)。

例如,模4的两个简化剩余类:\([1],[3]\)

定义2-7:对于正整数m,从模m的每个简化剩余类中选取一个数\(x_i\),构成的集合\(\{x_1,x_2,\cdots,x_{\varphi(m)}\}\)称为模m的简化剩余系。

例如,模4的两个简化剩余系:\(\{1,3\},\{3,9\}\)

定理2-4:整数集合A是模m的简化剩余系的充要条件为:

  1. 集合A中有\(\varphi(m)\)个整数
  2. A中任意两个整数不同余
  3. A中的每个整数都和m互素

证明:通过简化剩余系的定义即可证明

定理2-5:若\((a,m)=1\),\(\{x_1,x_2,\cdots,x_{\varphi(m)}\}\)是模m的简化剩余系,那么集合\(\{ax_1,ax_2,\cdots,ax_{\varphi(m)}\}\)也是模m的简化剩余系。

证明:假设集合\(\{ax_1,ax_2,\cdots,ax_{\varphi(m)}\}\)中存在两个数同余,不妨设\(ax_i\equiv ax_j\mod m\)。因为a,m互素,所以\(x_i\equiv x_j\mod m\)。这显然与\(\{x_1,x_2,\cdots,x_{\varphi(m)}\}\)是模m的简化剩余系相矛盾,所以定理2-5得证。

简化剩余系关于模m的在整数意义上是不连续的,例如模12的一个简化剩余系:\(\{1,5,7,11\}\)。因此当偏移项b不等于0时,往往不能保证得到的集合是简化剩余系。但是可能存在某些特殊的b值,使得偏移后的集合仍然是简化剩余系。例如:

  • \(b=km\)
  • 对于模8的简化剩余系而言,\(b=2\)也是成立的

2.3 欧拉定理与欧拉数计数

2.3.1 欧拉定理

定理2-6(欧拉定理):设m是正整数且\((a,m)=1\),则\(a^{\varphi(m)}\equiv1(mod\;m)\)。

证明:根据定理2-5,我们有如果\(\{x_1,x_2,\cdots,x_{\varphi(m)}\}\)是模m的简化剩余系,那么集合\(\{ax_1,ax_2,\cdots,ax_{\varphi(m)}\}\)也是模m的简化剩余系,因此
\[
\begin{aligned}
&ax_1ax_2\cdots ax_{\varphi(m)}\equiv x_1x_2\cdots x_{\varphi(m)}\mod m\\Rightarrow\;&a^{\varphi(m)}x_1x_2\cdots x_{\varphi(m)}\equiv x_1x_2\cdots x_{\varphi(m)}\mod m
\end{aligned}
\]
又因为\((x_1,m)=(x_2,m)=\cdots=(x_{\varphi(m)},m)=1\),所以\((x_1x_2\cdots x_{\varphi(m)},m)=1\),因此\(a^{\varphi(m)}\equiv1(mod\;m)\)

例题:今天是星期三,那么\(313^{159}\)天后是星期几?

因为每一个星期的周期是7,所以通过模7来计算:
\[
313^{159}\equiv(7k+5)^{159}\equiv5^{159}\mod 7\\\;5^{\varphi(7)}\equiv5^6\equiv1\mod 7
\]
因此\(5^{159}\equiv(5^6)^{26}\times5^3\equiv5^3\equiv6\mod 7\),所以\(313^{159}\)天后是星期二。

定理2-7(Fermat小定理):若p为素数,则对所有的整数a,有\(a^p\equiv a(mod\;p)\)。

证明:费马小定理实际上就是欧拉定理的一种特殊形式

  • 当\((a,p)=1\)时,由欧拉定理可知:\(a^{\varphi(p)}\equiv a^{p-1}\equiv1(mod\;p)\),因此\(a^p\equiv a(mod\;p)\)
  • 当\((a,p)=p\)时,\(a^p\equiv a \equiv0(mod\;p)\),定理成立。

因此,当进行指数运算且模素数的时候,可以利用费马小定理进行化简。

快速模幂运算(平方-乘算法):

为了计算大整数的方幂\(a^k(mod\;m)\),将k表示成二进制的形式:\(k=\alpha_0+\alpha_1\cdot2+\cdots+\alpha_r\cdot2^r,\;\alpha_i\in\{0,1\}\),因此
\[
\begin{aligned}
a^k&=a^{\alpha_0}\cdot a^{\alpha_1\cdot2}\cdot a^{\alpha_2\cdot2^2}\cdots a^{\alpha_r\cdot2^r}\\end{aligned}
\]
因为\(a^{2^{i+1}}\equiv (a^{2^i})^2(mod\;m)\),因此计算首先计算连续平方:
\[
\begin{aligned}
&t_0\equiv a\mod m\&t_1\equiv a^2\mod m\&t_2\equiv t_1^2\equiv a^{2^2}\mod m\&\cdots\&t_r\equiv t_{r-1}^2\equiv a^{2^r}\mod m
\end{aligned}
\]
在计算连续乘:\(a^k\equiv t_{i_1}\times t_{i_2}\times\cdots\times t_{i_s}\mod m\),其中\(0\le i_1<i_2<\cdots<i_s\le r\),并且\(\alpha_{i_1},\alpha_{i_2},\cdots,\alpha_{i_s}\)是所有\(\alpha_1,\alpha_2,\cdots,\alpha_r\)中等于1的项。

2.3.2 欧拉数计数公式

定理2-8:设\(m_1,m_2\in N^*\),\((m_1,m_2)=1\),模\(m_1\)的完全剩余系为\(X=\{x_1,x_2,\cdots,x_{m_1}\}\),模\(m_2\)的完全剩余系为\(Y=\{y_1,y_2,\cdots,y_{m_2}\}\),那么\(A=\{m_1y+m_2x|x\in X,y\in Y\}\)是模\(m_1m_2\)的完全剩余系。

证明:首先证明集合A内的元素两两不同余,假设存在两个数同余,那么
\[
\begin{aligned}
&m_1y_1+m_2x_1\equiv m_1y_2+m_2x_2\mod m_1m_2\\Rightarrow\;&m_2x_1\equiv m_2x_2\mod m_1\\Rightarrow\;&x_1\equiv x_2\mod m_1
\end{aligned}
\]
这与完全剩余系的定义相矛盾,因此集合内的元素两两不同余。因为\(m_1y+m_2x\)一共有\(m_1m_2\)种不同的组合,因此可知集合A就是一个完全剩余系。

定理2-9:设\(m_1,m_2\in N^*\),\((m_1,m_2)=1\),模\(m_1\)的简化剩余系为\(X=\{x_1,x_2,\cdots,x_{\varphi(m_1)}\}\),模\(m_2\)的简化剩余系为\(Y=\{y_1,y_2,\cdots,y_{\varphi(m_2)}\}\),那么\(A=\{m_1y+m_2x|x\in X,y\in Y\}\)是模\(m_1m_2\)的简化剩余系。

证明:假设模\(m_1\)的一个完全剩余系为\(X'\),模\(m_2\)的一个完全剩余系为\(Y'\),对于\(x\in X',y\in Y'\),如果\((m_1y+m_2x,m_1m_2)=1\),那么存在整数\(s,t\),使得
\[
\begin{aligned}
&(m_1y+m_2x)s+m_1m_2t=1\\Rightarrow\;&
\left\{\begin{aligned}
m_1(ys+m_2t)+x(m_2s)=1\m_2(xs+m_1t)+y(m_1s)=1
\end{aligned}\right.\\Rightarrow\;&
\left\{\begin{aligned}
(m_1,x)=1\(m_2,y)=1
\end{aligned}\right.\\end{aligned}
\]
即\(x\)与\(m_1\)互素,所以x必然来自模\(m_1\)的简化剩余系;同理y来自模\(m_2\)的简化剩余系。将模\(m_1\)的简化剩余系记为\(X\),模\(m_2\)的简化剩余系记为\(Y\),并构造集合\(A=\{m_1y+m_2x|x\in X,y\in Y\}\),显然此时集合\(A\)中一共有\(\varphi(m_1)\varphi(m_2)\)个元素。

接着证明集合A中的元素两两不同余:利用定理2-8中的证明思路即可

最后证明集合A中的任意一个元素和\(m_1m_2\)都互素:

假设集合A中存在一个数\(m_1y+m_2x\)与\(m_1m_2\)不互素,那么它们必然存在一个公共素因子\(d>1\)。因为\((m_1,m_2)=1\),所以素因子d只能来自\(m_1\)或者\(m_2\),这里不妨假设来自\(m_1\)(如果来自\(m_2\)也是一样的)。因为\(d|(m_1y+m_2x)\)且\(d|m_1\),所以\(d|m_2x\),于是有\(d|x\)。又因为\((x,m_1)=1\),所以我们的假设不成立,因此公因子d必须为1。

综上可知,定理2-9成立。

定理2-10:设\(m,n\in N^*\),\((m,n)=1\),那么\(\varphi(mn)=\varphi(m)\varphi(n)\)

证明:模m的简化剩余系中有\(\varphi(m)\)个整数,模n的简化剩余系中有\(\varphi(n)\)个整数,模\(mn\)的简化剩余系中有\(\varphi(mn)\)个整数,有定理2-9中的证明可知\(\varphi(mn)=\varphi(m)\varphi(n)\)成立。

利用定理2-10,我们可以计算任意正整数的欧拉函数:

首先,对于一个素数\(p>0\)而言,有\(\varphi(p^n)=p^n-p^{n-1}\)成立。因为若\(x\in\{1,2,3,\cdots,p^n\}\)且\((x,p^n)>1\),说明x必然含有素因子p,因此x具有形式\(x=kp,k=1,2,3,\cdots,p^{n-1}\)。所以\(\{1,2,3,\cdots,p^n\}\)中一共有\(p^{n-1}\)个数与\(p^n\)不互素。

对于任意正整数\(n>1\),通过算数基本定理将其分解为:\(n=p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_k^{\alpha_k}\)。因此
\[
\begin{aligned}
\varphi(n)&=\varphi(p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_k^{\alpha_k})\&=\varphi(p_1^{\alpha_1})\varphi(p_2^{\alpha_2})\cdots\varphi(p_k^{\alpha_k})\&=(p_1^{\alpha_1}-p_1^{\alpha_1-1})(p_2^{\alpha_2}-p_2^{\alpha_2-1})\cdots(p_k^{\alpha_k}-p_k^{\alpha_k-1})\&=p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_k^{\alpha_k}\prod_i(1-\frac{1}{p_i})\&=n\prod_i(1-\frac{1}{p_i})
\end{aligned}
\]

原文地址:https://www.cnblogs.com/philolif/p/number-theory-2.html

时间: 2024-10-24 03:47:30

2 同余的相关文章

POJ 2635 The Embarrassed Cryptographer (同余线性方程+素数筛)

题目地址:POJ 2635 先用素数筛把10^6万以内素数筛出来.然后把输入的那个大数转化成数组,并且每三位存成一个数,这样可以节约内存和时间,然后利用同余线性的原理,对那个小整数以内的所有素数枚举,然后判断是否整除,找到最小的能被整除的. 代码如下: #include <iostream> #include <string.h> #include <math.h> #include <queue> #include <algorithm> #i

POJ 2769 Reduced ID Numbers 同余定理

Reduced ID Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8989 Accepted: 3610 Description T. Chur teaches various groups of students at university U. Every U-student has a unique Student Identification Number (SIN). A SIN s is an

POJ--1465--Multiple【BFS+同余定理】

链接:http://poj.org/problem?id=1465 题意:给一个数字n,和m个数字,找一个由这些数字组成的最小的n的倍数,如果不存在输出0. 思路:这题怎么想都想不到bfs上去,看了别人的解题报告,其实是用bfs来枚举,但是加了一个牛逼的剪枝:同余.即如果A%X==B%X,则(A*10+K)%X==(B*10+K)%X. 我们枚举m中每一个数字做这个K,实际上是枚举了一个数,B*10是之前枚举的数字,如果这个数%X得到的值之前已经得到过,则没必要再往下计算,因为根据同余定理剩下的

java抓取12306火车余票信息

最近在弄一个微信的公众帐号,涉及到火车票查询,之前用的网上找到的一个接口,但只能查到火车时刻表,12306又没有提供专门的查票的接口.今天突然想起自己直接去12306上查询,抓取查询返回的数据包,这样就可以得到火车票的信息.这里就随笔记一下获取12306余票的过程. 首先,我用firefox浏览器上12306查询余票.打开firefox的Web控制台,选上网络中的"记录请求和响应主体" 然后输入地址日期信息之后点击网页上的查询按钮,就能在Web控制台下看到网页请求的地址了: 就是图片中

加/减/乘/除 下的取余

x(负数) mod y(正数) = z 其中x<z<=0 , 且(z-x) mod y=0. 求法:z=x+abs(x)/y*y (这里的除法结果向下取整) 所以当求一个数经过各种计算后的取余,只需 ans=(ans+x*y)%yu ans=(ans-x*y)%yu ans=ans*x%yu 除法:用线性逆元 最后 ans=(ans+yu)%yu (要是之前有减法运算)

2016湖南省赛----A 2016 (同余定理)

2016湖南省赛----A 2016 (同余定理) Description 给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) 的数量: 1. 1≤a≤n,1≤b≤m; 2. a×b 是 2016 的倍数. Input 输入包含不超过 30 组数据. 每组数据包含两个整数 n,m (1≤n,m≤10 9). Output 对于每组数据,输出一个整数表示满足条件的数量. Sample Input 32 63 2016 2016 1000000000 1000000000 Sample

余星男:3.3午夜金评:加息势在必行黄金白银原油多单怎么办?

文/余星男  投资不该天天赌,看错止损要服输,轻仓顺势做波段,探囊取物贵知足 <导读> 成功的路上并不拥挤,正确分析只是成功投资的第一步,而落实交易计划是走向成功的一大关健,成功的投资不但需要正确的市场分析,而且需要正确的风险管理.正确的心理控制.假如步步伐错了,肯定是其中环节出现脱节,出现这三者之间心理控制是最重要的,其次是风险管理,再其次才是分析技能.万物有其始,亦有其终,这是自然的规律,金市也是如此.道,很玄妙的东西,实际上,万事万物皆有其道,道无处不在,而且,万法归一,道的本质是一样的

同余运算及其基本性质

取模: a%b b定是正整数,尽管语言上b<0合法./b=0出现除0错  (a+b)mod n=((a mod n)+(b mod n)) mod n (a-b)mod n=((a mod n)-(b mod n)+n)mod n     //注意减法, a mod n 可能小于 b mod n 结果需加上n ab mod n=(a mod n)(b mod n)mod n 注意乘法,注意(a mod n)(b mod n)是否会溢出,用long long 保存中间结果 1 int mul_mo

互质 整除 同余

互质 当(a,b)=1时,称a.b互质(素) 性质: 1.已知(a,c)=1,若a|bc,则a|b:若a|b,c|b,则ac|b 2.p为素数,若p|ab,则p|a或p|b 3.[a,b]*(a,b)=ab 4.(a,b)=(a,b-ac)=(a-bc,b) 5.存在整数x.y,使得ax+by=(a,b) 6.m(a,b)=(ma,mb) 7.若a|m,b|m,则[a,b]|m 8.m[a,b]=[ma,mb] 整除 设a,b为整数,a≠0,若有一整数q,使得b=aq,则称a是b的因数,b为a的

抓取12306余票

目的:抓取12306余票随时间的变化规律,推导出12306的放票规则,从而能制定更好的抢票策略. 难点.问题: 准备抓取多少个站点 抓取的日期范围多大 如何储存数据.变量有查询开始站点.查询结束站点.出发日期. 数据分析.上面的数据足够多:比如整个预售期30天,乃至整年的数据,尤其是春运这个高峰期. 可能会遇到12306的反爬虫策略,具体问题到时具体分析.