数学基础
最大公约数
- 设 a、b 为整数,且 a、b 中至少有一个不等于 0,令 d=gcd(a,b),则一定存在整数 x、y 使得下式成立:
素数与互素
- 若 gcd(a, b) = 1,则称 a、b 互素
模运算与同余
可以理解为 a%n == b%n
逆元 (inverse)
- 加法逆元
- ,
- 乘法逆元
- ,
- 充要条件
- 求法:扩展欧几里得
拓展欧几里得
拓展欧几里得可以用来求乘法逆元,下面是一个例子:
例如求 13*x ≡ 1 (mod 35)
35 = 2*13+ 9
13 = 1*9 + 4
9 = 2*4 + 1
1 = 9-(2*4)
= (35 - 2*13) - (2*(13-1*9))
= 35 - 2*13 - 2*(13-1*(35-2*13))
= 35 - 2*13 - 2*13 + 2*(35-2*13)
= 3*35 - 8*13
所以 (-8)*13 ≡ 1 (mod 35)
又因为 -8 ≡ 27 (mod 35)
所以 13*27 ≡ 1 (mod 35)
13在模35的情况下,乘法逆元为27
裴蜀定理 gcd(x,y) = ax + by
根据欧几里得算法
x = x0;
y = y0;
while(y){
int q = y/x;
int r = y%x;
y = x;
x = r;
}
证明,在每一轮循环中,都有
使用数学归纳法
- i = 1 时,,,即
- i >= 1 时,若 i 满足上述条件,则
- ,
- ,,
Q.E.D
中国剩余定理
设 两两互素,则以下同余方程组
模 的唯一解为
,其中
(1)先证明 x 为同余方程的解
因为 ,所以
(2)再证明 x 是唯一解
假设上述同余方程组有两个解 ,
则
又因为 两两互素,所以 ,与假设矛盾
Q.E.D
Euler 准则
对于整数 x 和奇素数 p,x 是模 p 的平方剩余() 的充要条件是
证明:
(1)必要性
因为 gcd(x,p)=1, ,
所以 gcd(y,p)=1
根据费马小定理,
所以
(2)充分性
不妨设 ,因为 ={1,2,3,...,p-1} 在模 p 乘法下是循环群,所以一定存在 的一个生成元 b,使得
因为
所以
又因为 ,所以 i 为偶数
所以 x 模 p 的平方根必有整数解,其值为
Q.E.D