Lecture 3 - 2025 / 2 / 24
Primality Testing
费马素数测试:随机选择 a∈{1,2,⋯,n−1},如果 gcd(a,n)=1 直接输出 n 不是素数,否则如果 ap−1≡1(modn),则输出 Yes
,否则为 No
。
Definition (Carmichael number): 对于所有 1≤a<n,都有 ap−1≡1(modn),则 n 为 Carmichael 数。
Theorem: 如果 n 是合数且不是 Carmichael 数,则 Pr[Error in Fermat test]≤21。
后文称 G={a∣(a,n)=1}=Zn∗。
令 H={a∈G∣an−1≡1(modn)},显然有 H⪇G,从而根据拉格朗日定理,Pr[Error in Fermat test]≤∣G∣∣H∣≤21。
现在考虑 Carmichael 数,首先我们处理掉 n=pk 的情况。
Claim: 可以在 O(log2n) 的时间内,判断一个数是不是 pk。
首先 k<O(logn),所以每次二分 p 即可。
Lemma: 对于素数 p,一定不存在 x≡±1(modp),x2≡1(modp)。
(x−1)(x+1)≡0(modp)
我们试图通过寻找非平凡 1 的平方根的方式来判定素数。
记 n−1=2wO。随机选择 a∈G。
- 首先根据 Carmichael,a2wO≡1(modn)。
- 计算 a2w−1Omodn,如果是 −1,输出
Yes
,如果是 1,继续;否则输出 No
。
- 计算 a2w−2Omodn,如果是 −1,输出
Yes
,如果是 1,继续;否则输出 No
。
- ……
- 如果 aO≡1(modn) 依然成立,输出
Yes
。
显然素数一定能通过这个测试。对于合数,如果 a 能够成功淘汰它,则称 a 为一个 witness。
Claim: 对于存在两个不同素因子 p1,p2 的合数 n,Pr[a is a non-witness]≤21。
第一步构造一个包含所有 non-witness 的 G 的子群。
记 s∗∈{O,2O,⋯,2wO} 为最大的满足,∃x∈G,xs∗≡−1(modn) 的数。
s∗ 一定是良定义的,因为 (−1)O≡−1(modn)。
构造 H={a∈G∣as∗≡±1(modn)}≤G。易见所有 non-witness 都包含于 H。下面说明 H⪇G,即可由拉格朗日定理得到 Pr[a is a non-witness]≤∣G∣∣H∣=21。
考虑中国剩余定理,取出一个 (x∗)s∗≡−1(modn),我们构造满足如下方程的 a∈G。
{a≡x∗(modp1k1)a≡1(modp2k2)
由于 a∈/H,a∈G,从而 H 是真子群,原命题得证。
Probabilistic Method
Theorem (Ramsey): 对于 n≤2k/2 个点的图,存在而染色方案,使得任意 k 完全子图都不是同色的。
Theorem (Max Cut): 对于图 G=(V,E),存在一个割的大小 ≥2∣E∣。
Independent Set
Claim: 对于图 G=(V,E),存在独立集大小 ≥v∑deg(v)+11。
随机对点赋实数值,如果一个点是自己和邻居的最小值,就将其选入独立集。
可以看出不会选到相邻的点。v 被选入的概率是 deg(v)+11,从而期望即右式。
Crossing Number
Definition (crossing number): 把 G=(V,E) 嵌入平面,交叉数 c(G) 为最少的边的交点数量。
Theorem (Euler's formula): 对于平面图,∣V∣+∣R∣=∣E∣+2。同时 ∣R∣≥32∣E∣ 从而 ∣E∣≤3∣V∣−6。
Claim: c(G)≥∣E∣−3∣V∣+6
容易验证,最佳的嵌入方式满足:
于是,对于原图每一组相交的 (a,b),(c,d),构造新的点 v,断开原来的边并将 (a,v),(b,v),(c,v),(d,v) 连边。
新图为平面图,∣E′∣=∣E∣+2c(G),∣V′∣=∣V∣+c(G),从而
∣E∣+2c(G)≤3∣V∣+3c(G)−6⇒c(G)≥∣E∣−3∣V∣+6
用概率方法加强这个结论。我们以 p 的概率保留一个点,1−p 的概率把点删去。
从而每条边有 p2 的概率保留下来,每个原来的交点有 p4 的概率被保留下来。
从而
p4c(G)≥E[c(G)]≥E[∣E∣−3∣V∣+6]=p2∣E∣−3p∣V∣+6
c(G)≥p4p2∣E∣−3p∣V∣+6≥p3p∣E∣−3∣V∣
Claim: 对任何 ∣E∣≥4∣V∣ 的图 G,有 c(G)≥64∣V∣2∣E∣3。
取 p=∣E∣4∣V∣ 即可。