初等数论
参考资料
- 《离散数学及其应用》- 翻译版,包含"离散数学"和组合数学/初等数论等内容 - 4
模与素数
- a∣b ⇔ a整除b ⇔ b是a的倍数
- a≡b(modc) ⇔ a=b+kc(k为整数)
- 模m算术: 运算数在Zm范围内,结果取模m,结果集合为Zm
- 模指数运算: (ba)%m=(b⋅(ba−1%m))%m(可结合快速幂优化)
- 埃拉托斯特尼筛法: 寻找小于n的素数,每遇到素数就标记其倍数为合数
- 素数定理: 小于n的素数个数∼lnnn
- 欧拉函数ϕ(n): 小于n的正整数中与n互质的数的个数
GCD/LCM
- gcd(a,b)/lcm(a,b) = 所有素因子的最小/最大幂次乘积
- ab=gcd(a,b)⋅lcm(a,b)
- 欧几里得算法: a=bq+r⇒gcd(a,b)=gcd(b,r)
- 贝祖定理: 存在整数x,y使得ax+by=gcd(a,b)
同余
- 同余方程ax≡b(modm):
- 若gcd(a,m)=1,则存在唯一逆元a′使得aa′≡1(modm)
- a′可通过扩展欧几里得算法求得
- 中国剩余定理(CRT):
- 对于方程组x≡bi(modmi)(mi两两互质)
- 存在唯一解x≡∑biMiMi′(mod∏mi)
- (其中Mi=∏j=imj,Mi′为Mi模mi的逆元)
- 其意义在于将以大数分解为互质的因数, 任意小于大数的数都可以唯一表示为对于每个因数的模的余数的线性组合 (就是 b1-bn) 因此可以分开计算, 最后再将结果合并复原
- 费马小定理: 若p为素数且p∤a,则ap−1≡1(modp)
伪素数
- 若an−1≡1(modn)但n为合数,称n为以a为底的伪素数
- 卡米切尔数: 对所有与n互质的a都满足上述条件的合数
原根
- 设p为素数,r与p互质,最小的k使得rk≡1(modp)称为r的阶
- 若r的阶等于ϕ(p)=p−1,则称r为p的原根
- 离散对数: 若re≡a(modp),则记e=logra
应用
- 散列函数设计
- 伪随机数生成: Xn+1≡(aXn+b)(modm)(要求gcd(a,m)=gcd(b,m)=1)
- 校验码(如CRC)