炫酷反演魔术-vfleaking
莫比乌斯反演-PoPoQQQ
【数论】积性函数、莫比乌斯反演、狄利克雷卷积-nanoape
如何证明莫比乌斯反演
**非常良心的博主的良心之作 **
不过…二项式反演还有莫比乌斯反演好像真的可以用小学容斥怒踩qwq…(果然我还是太菜了…
决定将二项式反演和莫比乌斯反演一起写了
不过窝写的好像挺繁琐的…不像是那种简洁明了只几句话讲懂的…
所以期待较少篇幅就讲明白的可以看看参考资料哦!
参考资料写的真心不错qwq
让我们一起感受一下组合数学的美趴!
n n n个人全站错位置的方案数
错排递推式子 f [ i ] = ( i − 1 ) ∗ ( f [ i − 2 ] + f [ i − 1 ] ) f[i]=(i-1)*(f[i-2]+f[i-1]) f[i]=(i−1)∗(f[i−2]+f[i−1]) ( f [ i ] f[i] f[i]为 i i i个人全错排的方案)还挺好推的不阐述了
那就简单地讲一讲?
容斥!
大胆猜想小(不)心(用)证明
方案数为 ∑ i = 0 n ( − 1 ) i ∗ C n i ∗ ( n − i ) ! \sum_{i=0}^{n}(-1)^i*C_n^i*(n-i)! ∑i=0n(−1)i∗Cni∗(n−i)!
还是证明一下
在计算有 m m m个人站对的方案时 由于我们计算的时候是直接钦定有多少个人站对,剩下的随意站的。
所以,在计算 0 , 1 , 2... m − 1 0,1,2...m-1 0,1,2...m−1个人站对的方案时,我们会将 m m m个人站对的方案重复计算。
会被计算这么多次
为什么 ∑ k = 0 m ( − 1 ) k ∗ C m k = ( 1 − 1 ) m \sum_{k=0}^{m}(-1)^k*C_m^k=(1-1)^m k=0∑m(−1)k∗Cmk=(1−1)m呢?
换一种写法:
∑ k = 0 n ( − 1 ) k ∗ C n k = [ n = 0 ] \sum_{k=0}^n(-1)^k*C_n^k=[n=0] k=0∑n(−1)k∗Cnk=[n=0]
根据容斥得出来的一点东西…窝们来搞一搞反向推!博主随口乱讲大家不要在意
设 f ( i ) f(i) f(i)表示 i i i个人全站错的方案数, F ( i ) F(i) F(i)表示 i i i个人随便站的方案数
那么很显然有 F ( n ) = ∑ k = 0 n f ( i ) ∗ C n i F(n)=\sum_{k=0}^nf(i)*C_n^i F(n)=k=0∑nf(i)∗Cni
诶?如果窝们可以反向求出 f ( i ) f(i) f(i)不就厉害了嘛!
这个过程的流程是这样的:
首先说一句废话
f ( n ) = ∑ m = 0 n [ n = m ] ∗ C n m f ( m ) f(n)=\sum_{m=0}^n[n=m]*C_n^mf(m) f(n)=∑m=0n[n=m]∗Cnmf(m)
⇒ \Rightarrow ⇒ f ( n ) = ∑ m = 0 n ∑ k = 0 n − m ( − 1 ) k ∗ C n − m k ∗ C n m f ( m ) f(n)=\sum_{m=0}^n \sum_{k=0}^{n-m} (-1)^k*C_{n-m}^k*C_n^mf(m) f(n)=∑m=0n∑k=0n−m(−1)k∗Cn−mk∗Cnmf(m)
⇒ \Rightarrow ⇒ f ( n ) = ∑ m = 0 n ∑ k = 0 n − m ( − 1 ) k ∗ C n − k m ∗ C n k f ( m ) f(n)=\sum_{m=0}^n \sum_{k=0}^{n-m} (-1)^k*C_{n-k}^m*C_n^kf(m) f(n)=∑m=0n∑k=0n−m(−1)k∗Cn−km∗Cnkf(m)
⇒ \Rightarrow ⇒ f ( n ) = ∑ k = 0 n ( − 1 ) k ∗ C n k ∑ m = 0 n − k C n − k m ∗ f ( m ) f(n)=\sum_{k=0}^n(-1)^k*C_n^k\sum_{m=0}^{n-k}C_{n-k}^m*f(m) f(n)=∑k=0n(−1)k∗Cnk∑m=0n−kCn−km∗f(m)
⇒ \Rightarrow ⇒ f ( n ) = ∑ k = 0 n ( − 1 ) k ∗ C n k ∗ F ( n − k ) f(n)=\sum_{k=0}^n(-1)^k*C_n^k*F(n-k) f(n)=∑k=0n(−1)k∗Cnk∗F(n−k)
⇒ \Rightarrow ⇒ f ( n ) = ∑ k = 0 n ( − 1 ) n − k ∗ C n n − k ∗ F ( k ) = ∑ k = 0 n ( − 1 ) n − k ∗ C n k ∗ F ( k ) f(n)=\sum_{k=0}^n(-1)^{n-k}*C_n^{n-k}*F(k)=\sum_{k=0}^n(-1)^{n-k}*C_n^{k}*F(k) f(n)=∑k=0n(−1)n−k∗Cnn−k∗F(k)=∑k=0n(−1)n−k∗Cnk∗F(k)
千辛万苦。我们得到了这个东西。
F ( n ) = ∑ k = 0 n C n k ∗ f ( k ) F(n)=\sum_{k=0}^nC_n^k*f(k) F(n)=k=0∑nCnk∗f(k)
f ( n ) = ∑ k = 0 n ( − 1 ) n − k ∗ C n k ∗ F ( k ) f(n)=\sum_{k=0}^n(-1)^{n-k}*C_n^k*F(k) f(n)=k=0∑n(−1)n−k∗Cnk∗F(k)
设有两个函数 f , F f,F f,F满足
F ( n ) = ∑ k a n , k f ( k ) F(n)=\sum_ka_{n,k}f(k) F(n)=k∑an,kf(k)
已知 F F F求 f f f称作反演
窝们设 F ( i ) F(i) F(i)表示长度为 i i i的串的数量, f ( i ) f(i) f(i)表示长度为 i i i且循环节也为 i i i的数量
那么有
F ( i ) = ∑ d ∣ i f ( d ) F(i)=\sum_{d|i}f(d) F(i)=d∣i∑f(d)
F ( 1 ) = f ( 1 ) F(1)=f(1) F(1)=f(1)
F ( 2 ) = f ( 1 ) + f ( 2 ) F(2)=f(1)+f(2) F(2)=f(1)+f(2)
F ( 3 ) = f ( 1 ) + f ( 3 ) F(3)=f(1)+f(3) F(3)=f(1)+f(3)
F ( 4 ) = f ( 1 ) + f ( 2 ) + f ( 4 ) F(4)=f(1)+f(2)+f(4) F(4)=f(1)+f(2)+f(4)
F ( 5 ) = f ( 1 ) + f ( 5 ) F(5)=f(1)+f(5) F(5)=f(1)+f(5)
F ( 6 ) = f ( 1 ) + f ( 2 ) + f ( 3 ) + f ( 6 ) F(6)=f(1)+f(2)+f(3)+f(6) F(6)=f(1)+f(2)+f(3)+f(6)
↓ \downarrow ↓
f ( 1 ) = F ( 1 ) f(1)=F(1) f(1)=F(1)
f ( 2 ) = F ( 2 ) − F ( 1 ) f(2)=F(2)-F(1) f(2)=F(2)−F(1)
f ( 3 ) = F ( 3 ) − F ( 1 ) f(3)=F(3)-F(1) f(3)=F(3)−F(1)
f ( 4 ) = F ( 4 ) − f ( 2 ) f(4)=F(4)-f(2) f(4)=F(4)−f(2)
f ( 5 ) = F ( 5 ) − F ( 1 ) f(5)=F(5)-F(1) f(5)=F(5)−F(1)
f ( 6 ) = F ( 6 ) − F ( 2 ) − F ( 3 ) + F ( 1 ) f(6)=F(6)-F(2)-F(3)+F(1) f(6)=F(6)−F(2)−F(3)+F(1)
⇒ \Rightarrow ⇒ f ( i ) = ∑ d ∣ i μ ( d ) ∗ F ( i d ) f(i)=\sum_{d|i}\mu(d)*F(\dfrac{i}{d}) f(i)=d∣i∑μ(d)∗F(di)
其中:
μ ( d ) = { 1 , d = 1 ; ( − 1 ) k , d = p 1 ∗ . . . ∗ p k 0 , o t h e r w i s e \mu(d)=\begin{cases} 1,d=1;\\ (-1)^{k},d=p_1*...*p_k\\0,otherwise\end{cases} μ(d)=⎩⎪⎨⎪⎧1,d=1;(−1)k,d=p1∗...∗pk0,otherwise
接下来来证明一下这个东西QwQ.
如果你能够用容斥原理感性理解上述结论窝觉得可能就行了证明只需要知道方法…公式死记肯定会忘掉…总之感性理解是个好东西QwQ珂我没有
其实本质上也是一个容斥原理可以像上面证明二项式反演一样来证
好像… 更好的阅读体验… 要先把前面的那些东西(乱搞猜出莫比乌斯函数)稍稍忘掉哦~qwq
我们回忆一下一道题。是一道容斥入门题
求 [ l , r ] [l,r] [l,r]区间内和 n n n互指的数有多少个.
“我愿意沉默释放内心焰火”
本文作者:Averyta
博客链接:https://blog.csdn.net/AngryVegetable