简单数论的常见trick

it2022-05-05  227

文章中 [ . . . ] [...] [...]为艾佛森括号, ( x , y ) (x,y) (x,y) g c d ( x , y ) gcd(x,y) gcd(x,y)的缩写。

1.素数的分布密度约为 1 ln ⁡ n \frac{1}{\ln n} lnn1

2. lim ⁡ n → ∞ π ( n ) × ln ⁡ n n = 1 \lim_{n\rightarrow \infty}\frac{\pi(n)\times\ln n}{n} = 1 limnnπ(n)×lnn=1

3. ∑ i = 1 n 1 i = n ln ⁡ n \sum_{i=1}^n\frac{1}{i} = n\ln n i=1ni1=nlnn

4. ∑ i ∈ [ 1 , n ] 1 p = ln ⁡ ln ⁡ n \sum_{i\in[1,n]}\frac{1}{p}=\ln\ln n i[1,n]p1=lnlnn

5. a ≡ b a\equiv b ab mod m m m, a ≡ b a\equiv b ab (mod n n n),则 a ≡ b a\equiv b ab mod [ a , b ] [a,b] [a,b]

6. ( k , m ) = d , k a ≡ k a ′ (k,m)=d,ka\equiv ka' (k,m)=d,kaka (mod m m m),则 a ≡ a ′ a\equiv a' aa(mod m m m)

7.关于exgcd通解问题

我们可以简单知道所求的 x 0 , y 0 x_0,y_0 x0,y0是一组特殊解而没有任何的特殊性质(雾)

希望求得某些边缘解和通解来计算

考虑通解 y = y 0 ± w y=y_0\pm w y=y0±w的构造:

明显 y = ( ( a , b ) − a x 0 ) / b ± a w / b y=((a,b)-ax_0)/b\pm aw/b y=((a,b)ax0)/b±aw/b,而想要求得整数通解,那么 a w / b aw/b aw/b必为整数。

( a , b ) = 1 (a,b)=1 (a,b)=1,那么 w m i n = b w_{min}=b wmin=b,若 ( a , b ) ≠ 1 (a,b) \neq 1 (a,b)̸=1那么有 a = p q 1 , b = p q 2 a=pq_1,b=pq_2 a=pq1,b=pq2 ( q 1 , q 2 ) = 1 (q_1,q_2)=1 (q1,q2)=1

此时 w m i n = q 2 w_{min}=q_2 wmin=q2,即 b / ( a , b ) b/(a,b) b/(a,b),于是求得通解 y = y 0 + b ( a , b ) × t y=y_0+\frac{b}{(a,b)}\times t y=y0+(a,b)b×t

同理可以得到 x x x的通解 x = x 0 + b ( a , b ) × t x=x_0+\frac{b}{(a,b)}\times t x=x0+(a,b)b×t,最小正整数解即为 x m i n = x 0 m o d    b ( a , b ) x_{min}=x_0 \mod \frac{b}{(a,b)} xmin=x0mod(a,b)b

k = b ( a , b ) k=\frac{b}{(a,b)} k=(a,b)b,因为 x x x可能 ≤ 0 \leq0 0,所以实际的 x m i n x_{min} xmin ( x m i n m o d    k ) + k (x_{min} \mod k) + k (xminmodk)+k

8.证明 ∑ d ∣ n ϕ ( d ) = n \sum_{d|n}{\phi(d)}=n dnϕ(d)=n

证明1: n = ∑ d = 1 n ∑ i = 1 n [ ( i , n ) = d ] = ∑ d ∣ n ∑ i = 1 n / d [ ( i , n d ) = 1 ] = ∑ d ∣ n ϕ ( n d ) = ∑ d ∣ n ϕ ( d ) n=\sum_{d=1}^n{\sum_{i=1}^n[(i,n)=d]} =\sum_{d\vert n}\sum_{i=1}^{n/d}[(i,\frac{n}{d})=1]=\sum_{d \vert n}\phi(\frac{n}{d})=\sum_{d\vert n}\phi(d) n=d=1ni=1n[(i,n)=d]=dni=1n/d[(i,dn)=1]=dnϕ(dn)=dnϕ(d)

正确性:第一步转化中每个数只会被算一次,所以是 n n n

证明2:

F ( n ) = ∑ d ∣ n ϕ ( d ) F(n)=\sum_{d \vert n}\phi(d) F(n)=dnϕ(d) i d id id ϕ \phi ϕ的卷积,因此是积性函数

直接套唯一分解定理,变成求 F ( ∏ i p i k i ) F(\prod_i{p_i^{k_i}}) F(ipiki),把不同的质因子分开,变成求 ∑ i F ( p i k i ) \sum_{i}F(p_i^{k_i}) iF(piki)

对于每个 F ( p i k i ) F(p_i^{k_i}) F(piki),实际上是等比数列求和+1,求得 F ( p i k i ) = p i k i F(p_i^{k_i})=p_i^{k_i} F(piki)=piki

因此 F ( n ) = n F(n)=n F(n)=n

证明3:

ϕ ( n ) = ∑ i = 1 n [ ( i , n ) = 1 ] = ∑ i = 1 n ∑ e ∣ ( i , n ) μ ( e ) = ∑ i = 1 n ∑ e ∣ n ∑ e ∣ i μ ( e ) = ∑ e ∣ n ∑ i = 1 n ∑ e ∣ i μ ( e ) = ∑ e ∣ n μ ( e ) n e = i d ∗ μ \begin{aligned} \phi(n)&=\sum_{i=1}^n[(i,n)=1]\\ &=\sum_{i=1}^n\sum_{e\vert (i,n)}\mu(e)\\ &=\sum_{i=1}^n\sum_{e\vert n}\sum_{e\vert i}\mu(e)\\ &=\sum_{e\vert n}\sum_{i=1}^n{\sum_{e \vert i}}\mu(e)\\ &=\sum_{e\vert n}\mu(e)\frac{n}{e}\\ &=id*\mu \end{aligned} ϕ(n)=i=1n[(i,n)=1]=i=1ne(i,n)μ(e)=i=1neneiμ(e)=eni=1neiμ(e)=enμ(e)en=idμ 因此 ϕ ( n ) = i d ∗ μ ( n ) \phi(n)=id*\mu(n) ϕ(n)=idμ(n) 两边同时卷 1 1 1 ϕ ∗ 1 = i d ∗ ϵ \phi*1=id*\epsilon\\ ϕ1=idϵ ∑ d ∣ n ϕ ( d ) = n \sum_{d\vert n}\phi(d)=n dnϕ(d)=n

9.扩展欧拉定理 ( a , m ) = ̸ 1 , a ( c m o d    ϕ ( m ) ) + ϕ ( m ) ≡ a c (a,m)=\not 1,a^{(c\mod \phi(m))+\phi(m)} \equiv a^c (a,m)≠1,a(cmodϕ(m))+ϕ(m)ac

主要用于底数 a a a和模数 m m m不互质的情况。

先考虑证明质数的幂次 p c , c ≥ ϕ ( m ) p^c,c\geq\phi(m) pc,cϕ(m)适用于此定理。

m < p m < p m<p明显 ( p , m ) = 1 (p,m)=1 (p,m)=1,故成立

因为 p p p是质数且 ( p , m ) = ̸ 1 (p,m)=\not 1 (p,m)≠1,所以当 m > p m>p m>p的时候 m m m一定是 p p p的倍数,得到 m = t × p r , ( t , p ) = 1 m=t\times p^r,(t,p)=1 m=t×pr,(t,p)=1 ϕ ( t ) ∣ ϕ ( m ) \phi(t)\vert \phi(m) ϕ(t)ϕ(m)

所以 p ϕ ( t ) ≡ 1 m o d    t p^{\phi(t)}\equiv 1\mod t pϕ(t)1modt

( t , p ) = 1 (t,p)=1 (t,p)=1意味着 ϕ ( m ) = ϕ ( t ) ϕ ( p r ) \phi(m)=\phi(t)\phi(p^r) ϕ(m)=ϕ(t)ϕ(pr),即 p ϕ ( m ) ≡ 1 m o d    m p^{\phi(m)}\equiv 1\mod m pϕ(m)1modm

指数同改变 r r r即得到 p ϕ ( m ) + r ≡ p r p^{\phi(m)+r}\equiv p^{r} pϕ(m)+rpr

p c ≡ p c − r + r ≡ p ϕ ( m ) + r ≡ p r p^{c}\equiv p^{c-r+r}\equiv p^{\phi(m)+r}\equiv p^{r} pcpcr+rpϕ(m)+rpr,明显 p r p^r pr在意义上与 p c p^c pc相同,因此 p c ≡ p c m o d    ϕ ( m ) p^{c}\equiv p^{c \mod \phi(m)} pcpcmodϕ(m)

对于一个数 s = ∏ i p i k i s=\prod_{i}p_i^{k_i} s=ipiki,因为 ∀ i , j , ( p i , p j ) = 1 \forall i,j,(p_i,p_j)=1 i,j,(pi,pj)=1,所以 ϕ ( s ) = ϕ ( ∏ i p i k i ) \phi(s)=\phi(\prod_{i}p_i^{k_i}) ϕ(s)=ϕ(ipiki)

明显直接乘起来就好

10.关于bsgs

问题是求 y x ≡ z m o d    p y^{x}\equiv z\mod p yxzmodp,正常情况下是 ( y , p ) = 1 (y,p)=1 (y,p)=1,然后解法是对指数分块

先特判。

1. z = 1 z=1 z=1的时候 x = 0 x=0 x=0

2. y = 0 y=0 y=0的时候 z = ̸ 0 z=\not 0 z≠0无解, z = 0 , x = 1 z=0,x=1 z=0,x=1

3. z = 0 z=0 z=0

变成 y x ≡ 0 m o d    p y^x\equiv 0\mod p yx0modp,明显 p = t × y r , ( t , y ) = 1 p=t\times y^r,(t,y)=1 p=t×yr,(t,y)=1

设分块大小是 B B B,变成 y i B ≡ z y j y^{iB}\equiv zy^{j} yiBzyj

因为复杂度是 max ⁡ ( p B , B ) \max(\frac{p}{B},B) max(Bp,B),所以明显 B B B p \sqrt{p} p ,然后右边插到hash表里去左边枚举系数然后查一下。

注意,因为 y k y^{k} yk m o d    p \mod p modp意义下 ( 注 意 ( y , p ) = 1 ) (注意(y,p)=1) ((y,p)=1)最多只有 ϕ ( p ) \phi(p) ϕ(p),最坏情况下即 p − 1 p-1 p1个,所以 B B B p \sqrt{p} p 直接下取整即可。

如果 ( y , p ) = ̸ 1 (y,p)=\not1 (y,p)≠1的话 y y y明显没逆元,所以就先搞成互质的情况

sbcsdn吞了我保存的公式,是傻逼吗? 不想写exbsgs了,算了还是补上吧(愤恨)

A x ≡ B m o d    C A^{x}\equiv B\mod C AxBmodC

循环对 C C C A A A做除法,定义 R = ∏ i d i , d i = ( C ∏ j i − 1 d j , A ) R=\prod_id_i,d_i=(\frac{C}{\prod_j^{i-1}d_j},A) R=idi,di=(ji1djC,A)

最后变成 A k R × A n − k ≡ B R m o d    C R \frac{A^k}{R}\times A^{n-k}\equiv \frac{B}{R}\mod \frac{C}{R} RAk×AnkRBmodRC,这个时候 ( A k R , C R ) = 1 (\frac{A^k}{R},\frac{C}{R})=1 (RAk,RC)=1 ( A n − k , C R ) = 1 (A^{n-k},\frac{C}{R})=1 (Ank,RC)=1,存在逆,直接当成普通的bsgs做就好


最新回复(0)