数论/组合数学 杂项

数论相关

欧拉定理及扩展欧拉定理

这里写图片描述

Lucas定理

p p p是质数的时候,有
( m n ) ≡ ( ⌊ m / p ⌋ ⌊ n / p ⌋ ) ( m   m o d   p n   m o d   p ) (   m o d   p ) {m\choose n}≡{{\lfloor m/p\rfloor}\choose{\lfloor n/p\rfloor}}{{m\bmod p}\choose {n\bmod p}}(\bmod p) (nm)(n/pm/p)(nmodpmmodp)(modp)

Kummer定理

m , n m,n m,n 为正整数, p p p 为素数,则 ( n + m n ) {n+m\choose n} (nn+m) p p p的幂次等于 m + n m+n m+n p p p进制下的进位次数

杂项

φ ( a b ) = φ ( a ) φ ( b ) ( a , b ) φ ( ( a , b ) ) \varphi(ab)=\frac{\varphi(a)\varphi(b)(a,b)}{\varphi((a,b))} φ(ab)=φ((a,b))φ(a)φ(b)(a,b)
∑ i = 1 n ∑ j = 1 m [ ( i , j ) = 1 ] = ∑ i = 1 n μ ( i ) ⌊ n / i ⌋ ⌊ m / i ⌋ \sum_{i=1}^n\sum_{j=1}^m[(i,j)=1]=\sum_{i=1}^n\mu(i)\lfloor n/i\rfloor \lfloor m/i\rfloor i=1nj=1m[(i,j)=1]=i=1nμ(i)n/im/i
∑ i = 1 n ∑ j = 1 n [ ( i , j ) = d ] = ∑ i = 1 ⌊ n / d ⌋ ( 2 φ ( i ) − 1 ) \sum_{i=1}^n\sum_{j=1}^n[(i,j)=d]=\sum_{i=1}^{\lfloor n/d\rfloor}(2\varphi(i)-1) i=1nj=1n[(i,j)=d]=i=1n/d(2φ(i)1)
∑ i = 1 n ∑ j = 1 m [ ( i , j ) = d ] = ∑ T = 1 n ⌊ n / T ⌋ ⌊ m / T ⌋ φ ( T ) \sum_{i=1}^n\sum_{j=1}^m[(i,j)=d]=\sum_{T=1}^n\lfloor n/T\rfloor \lfloor m/T\rfloor \varphi(T) i=1nj=1m[(i,j)=d]=T=1nn/Tm/Tφ(T)
[ x = 1 ] = ∑ d ∣ x μ ( d ) [x=1]=\sum_{d|x}\mu(d) [x=1]=dxμ(d)
n = ∑ d ∣ n φ ( d ) n=\sum_{d|n}\varphi(d) n=dnφ(d)

组合相关

小trick
i ( n i ) = n ( n − 1 i − 1 ) i{n\choose i}=n{n-1\choose i-1} i(in)=n(i1n1)
范德蒙恒等式(证明用生成函数秒杀)
∑ i = 0 ( n i ) ( m k − i ) = ( n + m k ) \sum_{i=0}{n\choose i}{m\choose k-i}={n+m\choose k} i=0(in)(kim)=(kn+m)
上式特殊情况
∑ i = 0 n ( n i ) 2 = ( 2 n n ) \sum_{i=0}^n{n\choose i}^2={2n\choose n} i=0n(in)2=(n2n)

组合数列上求和
( n m ) = ∑ i = 0 n − 1 ( i m − 1 ) {n\choose m}=\sum_{i=0}^{n−1}{i\choose m−1} (mn)=i=0n1(m1i)
组合数斜线求和
∑ i = 0 k ( n + i i ) = ( n + k + 1 k ) \sum_{i=0}^k{n+i\choose i}={n+k+1\choose k} i=0k(in+i)=(kn+k+1)
∑ i = 0 n ( n − i i ) = F i b o n a c c i n \sum_{i=0}^n{n-i\choose i}=Fibonacci_n i=0n(ini)=Fibonaccin

斯特林数

第一类斯特林数
组合意义:将n个可区分元素划分成m个圆排列的方案数。
递推式:
[ n m ] = [ n − 1 m − 1 ] + ( n − 1 ) [ n − 1 m ] \begin{bmatrix}n \\ m \end{bmatrix}=\begin{bmatrix}n-1 \\ m-1 \end{bmatrix}+(n-1)\begin{bmatrix}n-1 \\ m \end{bmatrix} [nm]=[n1m1]+(n1)[n1m]
第二类斯特林数
组合意义:将n个可区分元素划分成m个非空集合的方案数。
递推式:
{ n m } = { n − 1 m − 1 } + m { n − 1 m } {n \brace m}={n-1 \brace m-1}+m{n-1 \brace m} {mn}={m1n1}+m{mn1}
直接展开式:
{ n m } = 1 m ! ∑ k = 0 m ( − 1 ) m − k ( m k ) k n = ∑ k = 0 m ( − 1 ) m − k k n ( m − k ) ! k ! {n \brace m}=\frac{1}{m!}\sum_{k=0}^{m}(-1)^{m-k}{m \choose k}k^n=\sum_{k=0}^{m}\frac{(-1)^{m-k}k^n}{(m-k)!k!} {mn}=m!1k=0m(1)mk(km)kn=k=0m(mk)!k!(1)mkkn
容易发现,乘积是卷积形式,可以用FFT快速求出。

使用两类斯特林数使 幂 与 下降幂 互化
x n = ∑ i = 0 n { n i } x i ‾ x^n=\sum_{i=0}^n {n \brace i} x^{\underline i} xn=i=0n{in}xi
x n ‾ = ∑ i = 0 n ( − 1 ) n − i [ n i ] x i x^{\underline n}=\sum_{i=0}^n(-1)^{n-i} \begin{bmatrix}n \\ i \end{bmatrix}x^i xn=i=0n(1)ni[ni]xi
由这两个式子互相代换可以导出 斯特林反演的原理:
x n = ∑ i = 0 n { n i } x i ‾ x^n=\sum_{i=0}^n {n \brace i} x^{\underline i} xn=i=0n{in}xi
x n = ∑ i = 0 n { n i } ∑ j = 0 i ( − 1 ) i − j [ i j ] x j x^n=\sum_{i=0}^n {n \brace i} \sum_{j=0}^i(-1)^{i-j} \begin{bmatrix}i \\ j \end{bmatrix}x^j xn=i=0n{in}j=0i(1)ij[ij]xj
右边调换求和次序
x n = ∑ j = 0 n x j ∑ i = j n ( − 1 ) i − j { n i } [ i j ] x^n=\sum_{j=0}^n x^j\sum_{i=j}^n (-1)^{i-j}{n\brace i}\begin{bmatrix} i \\ j\end{bmatrix} xn=j=0nxji=jn(1)ij{in}[ij]
由于不论 x x x取何值,等式都成立,容易得知
∑ i = j n ( − 1 ) i − j { n i } [ i j ] = [ n = j ] \sum_{i=j}^n (-1)^{i-j}{n\brace i}\begin{bmatrix} i \\ j\end{bmatrix}=[n=j] i=jn(1)ij{in}[ij]=[n=j]
类似地,我们可以证明另一种代换,所以有
∑ j = k n ( − 1 ) n − k [ n j ] { j k } = ∑ j = k n ( − 1 ) j − k { n j } [ j k ] = [ n = k ] \sum_{j=k}^n (-1)^{n-k} \begin{bmatrix}n \\ j \end{bmatrix} {j\brace k}=\sum_{j=k}^n(-1)^{j-k} {n\brace j}\begin{bmatrix}j \\ k \end{bmatrix}=[n=k] j=kn(1)nk[nj]{kj}=j=kn(1)jk{jn}[jk]=[n=k]

反演

二项式反演

a i = ∑ j = 0 i ( i j ) b j ⇔ b i = ∑ j = 0 i ( − 1 ) i − j ( i j ) a j a_i=\sum\limits_{j=0}^i{i \choose j}b_j⇔b_i=\sum_{j=0}^i(-1)^{i-j}{i \choose j}a_j ai=j=0i(ji)bjbi=j=0i(1)ij(ji)aj

斯特林反演

f m = ∑ i = m n [ i m ] g i ⇔ g m = ∑ i = m n ( − 1 ) i − m { i m } f i f_m=\sum_{i=m}^n \begin{bmatrix} i \\ m\end{bmatrix}g_i⇔g_m=\sum_{i=m}^n(-1)^{i-m}{i \brace m}f_i fm=i=mn[im]gigm=i=mn(1)im{mi}fi

a n = ∑ i = 1 n { n i } b i ⇔ b n = ∑ i = 1 n [ n i ] ( − 1 ) n − i a i a_n=\sum_{i=1}^n {n\brace i}b_i ⇔ b_n=\sum_{i=1}^n \begin{bmatrix} n \\ i\end{bmatrix}(-1)^{n-i}a_i an=i=1n{in}bibn=i=1n[ni](1)niai
除了上面的两种,斯特林数还有很多类似反演式。
用Samjia神犇提供的推法来证一下第二条:
a , b , { n i } a,b,{n\brace i} a,b,{in}都写成EGF的形式。因为
S k ( x ) = ∑ i ≥ 0 { i k } x i i ! = ( e x − 1 ) k k ! S_k(x)=\sum_{i\geq 0}\dfrac{{i\brace k}x^i}{i!}=\dfrac{(e^x-1)^k}{k!} Sk(x)=i0i!{ki}xi=k!(ex1)k
所以
A ( x ) = ∑ i ≥ 1 S i ( x ) b i = ∑ i ≥ 1 b i ( e x − 1 ) i i ! = B ( e x − 1 ) A(x)=\sum_{i\geq 1}S_i(x)b_i=\sum_{i\geq 1}\dfrac{b_i(e^x-1)^i}{i!}=B(e^x-1) A(x)=i1Si(x)bi=i1i!bi(ex1)i=B(ex1)
A ( x ) = B ( e x − 1 ) ⇒ A ( l n ( 1 + x ) ) = B ( x ) A(x)=B(e^x-1) ⇒ A(ln(1+x))=B(x) A(x)=B(ex1)A(ln(1+x))=B(x)
这里已经初露端倪了, l n ( 1 + x ) = ∑ i ≥ 1 ( − 1 ) i − 1 x i i ln(1+x)=\sum_{i\geq 1}\dfrac{(-1)^{i-1}x^i}{i} ln(1+x)=i1i(1)i1xi就是一个轮换的EGF
[ x n ] [x^n] [xn]看看
b n = ∑ i ≥ 1 a i [ x n ] ( l n ( 1 + x ) ) i i ! b_n=\sum_{i\geq 1}a_i\dfrac{[x^n](ln(1+x))^{i}}{i!} bn=i1aii![xn](ln(1+x))i
第一类斯特林数已经出来了,于是得到
b n = ∑ i = 1 n a i [ n i ] ( − 1 ) n − i b_n=\sum_{i=1}^n a_i\begin{bmatrix} n \\ i\end{bmatrix}(-1)^{n-i} bn=i=1nai[ni](1)ni

单位根反演

名字听上去很高端,实际上就是初学FFT原理时用到的一个引理:
[ k ∣ i ] = 1 k ∑ j = 0 k − 1 ω k j i [k|i]=\frac{1}{k}\sum_{j=0}^{k-1}\omega_k^{ji} [ki]=k1j=0k1ωkji
其中 ω k \omega_k ωk是主k次单位根,证明也很简单,此不赘述
例题是HNOI2019白兔之舞

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值