学习笔记 | 反演 | 二项式反演 | 莫比乌斯反演 | 狄利克雷卷积 |容斥 | 未完待更 | 在更
文章目录
学习笔记 | 反演 | 二项式反演 | 莫比乌斯反演 | 狄利克雷卷积 |容斥
参考资料。
【数论】积性函数、莫比乌斯反演、狄利克雷卷积-nanoape
前言
**非常良心的博主的良心之作 **
不过…二项式反演还有莫比乌斯反演好像真的可以用小学容斥怒踩qwq…(果然我还是太菜了…
决定将二项式反演和莫比乌斯反演一起写了
不过窝写的好像挺繁琐的…不像是那种简洁明了只几句话讲懂的…
所以期待较少篇幅就讲明白的可以看看参考资料哦!
参考资料写的真心不错qwq
让我们一起感受一下组合数学的美趴!
引入
简单的容斥应用-全错排
nnn个人全站错位置的方案数
-
错排递推式子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]为iii个人全错排的方案)还挺好推的不阐述了
那就简单地讲一讲?
一种情况是111和 iii 交换位置 然后剩下的n−2n-2n−2个重排 这一部分答案为(n−1)∗f[n−2](n-1)*f[n-2](n−1)∗f[n−2] - 剩下的情况111到iii的位置上去,但iii不到111的位置上去 相当于iii的位置原来是1 这一部分答案为(n−1)∗f[n−1](n-1)*f[n-1](n−1)∗f[n−1]
容斥!
大胆猜想小(不)心(用)证明
方案数为∑i=0n(−1)i∗Cni∗(n−i)!\sum_{i=0}^{n}(-1)^i*C_n^i*(n-i)!∑i=0n(−1)i∗Cni∗(n−i)!
还是证明一下
在计算有mmm个人站对的方案时 由于我们计算的时候是直接钦定有多少个人站对,剩下的随意站的。
所以,在计算0,1,2...m−10,1,2...m-10,1,2...m−1个人站对的方案时,我们会将mmm个人站对的方案重复计算。
会被计算这么多次
公式莫名挂了…所以贴图片了qwq
为什么∑k=0m(−1)k∗Cmk=(1−1)m\sum_{k=0}^{m}(-1)^k*C_m^k=(1-1)^mk=0∑m(−1)k∗Cmk=(1−1)m呢?
- 这是二项式定理,事实上,这有个特殊情况,即m=0m=0m=0时,左边的式子为111
换一种写法:
∑k=0n(−1)k∗Cnk=[n=0]\sum_{k=0}^n(-1)^k*C_n^k=[n=0]k=0∑n(−1)k∗Cnk=[n=0]
[P][P]表示PPP成立时为111,否则为000
幕后
[p]根据容斥得出来的一点东西…窝们来搞一搞反向推!博主随口乱讲大家不要在意设f(i)f(i)f(i)表示iii个人全站错的方案数,F(i)F(i)F(i)表示iii个人随便站的方案数
那么很显然有F(n)=∑k=0nf(i)∗CniF(n)=\sum_{k=0}^nf(i)*C_n^iF(n)=k=0∑nf(i)∗Cni
诶?如果窝们可以反向求出f(i)f(i)f(i)不就厉害了嘛!
这个过程的流程是这样的:
首先说一句废话
f(n)=∑m=0n[n=m]∗Cnmf(m)f(n)=\sum_{m=0}^n[n=m]*C_n^mf(m)f(n)=∑m=0n[n=m]∗Cnmf(m)
- 哦?[n=m][n=m][n=m]等价于[n−m=0][n-m=0][n−m=0]
- 嗯?窝们上面不是有这个东西嘛?∑k=0n(−1)k∗Cnk=[n=0]\sum_{k=0}^n (-1)^k*C_n^k=[n=0]∑k=0n(−1)k∗Cnk=[n=0],nnn用n−mn-mn−m代掉放到[n=m][n=m][n=m]那里
⇒\Rightarrow⇒ f(n)=∑m=0n∑k=0n−m(−1)k∗Cn−mk∗Cnmf(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)
- 显然Cn−mk∗Cnm=Cnk∗Cn−kmC_{n-m}^k*C_n^m=C_n^k*C_{n-k}^mCn−mk∗Cnm=Cnk∗Cn−km(相当于在nnn个数里选两个集合,一个包含kkk个元素,另一个包含mmm个元素的方案数)
⇒\Rightarrow⇒ f(n)=∑m=0n∑k=0n−m(−1)k∗Cn−km∗Cnkf(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)
- 交换两个∑\sum∑
⇒\Rightarrow⇒ f(n)=∑k=0n(−1)k∗Cnk∑m=0n−kCn−km∗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)
- Emmmmm? ∑m=0n−kCn−km∗f(m)\sum_{m=0}^{n-k}C_{n-k}^m*f(m)∑m=0n−kCn−km∗f(m)就是F(n−k)F(n-k)F(n−k)
⇒\Rightarrow⇒ f(n)=∑k=0n(−1)k∗Cnk∗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)
- kkk的地方用n−kn-kn−k代 让下标更好看一点
⇒\Rightarrow⇒ f(n)=∑k=0n(−1)n−k∗Cnn−k∗F(k)=∑k=0n(−1)n−k∗Cnk∗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=0nCnk∗f(k)F(n)=\sum_{k=0}^nC_n^k*f(k)F(n)=k=0∑nCnk∗f(k)
f(n)=∑k=0n(−1)n−k∗Cnk∗F(k)f(n)=\sum_{k=0}^n(-1)^{n-k}*C_n^k*F(k)f(n)=k=0∑n 7ff7 (−1)n−k∗Cnk∗F(k)
反演的定义
设有两个函数f,Ff,Ff,F满足
F(n)=∑kan,kf(k)F(n)=\sum_ka_{n,k}f(k)F(n)=k∑an,kf(k)
已知FFF求fff称作
反演
- 可以利用未知量求已知量。
莫比乌斯反演!
- 求长度为nnn的字符串且其循环节也为nnn的字符串个数QwQ 循环节:最小长度的串重复n/lenn/lenn/len此恰好为该字符串
窝们设F(i)F(i)F(i)表示长度为iii的串的数量,f(i)f(i)f(i)表示长度为iii且循环节也为iii的数量
那么有
F(i)=∑d∣if(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)= 8000 ∑d∣iμ(d)∗F(id)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=p1∗...∗pk0,otherwise\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
- 其中q1...qkq_1...q_kq1...qk是不相同的质数
接下来来证明一下这个东西QwQ.
如果你能够用容斥原理感性理解上述结论窝觉得可能就行了证明只需要知道方法…公式死记肯定会忘掉…总之感性理解是个好东西QwQ珂我没有
其实本质上也是一个容斥原理可以像上面证明二项式反演一样来证
好像… 更好的阅读体验… 要先把前面的那些东西(乱搞猜出莫比乌斯函数)稍稍忘掉哦~qwq
我们回忆一下一道题。是一道容斥入门题
求[l,r][l,r][l,r]区间内和nnn互指的数有多少个.
“我愿意沉默释放内心焰火”
本文作者:Averyta
- BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】
- 莫比乌斯反演学习笔记
- 莫比乌斯反演 学习笔记
- [莫比乌斯反演]【学习笔记】[旧]
- 莫比乌斯反演学习笔记
- BZOJ 2820: YY的GCD [莫比乌斯反演]【学习笔记】
- 【学习】容斥原理与莫比乌斯反演
- [容斥原理与莫比乌斯反演][学习笔记]
- [2012集训队互测]JZPKIL - 生成函数,伯努利数,数论,莫比乌斯反演,狄利克雷卷积
- 莫比乌斯反演学习【莫比乌斯反演】
- 莫比乌斯反演--汇总学习博客
- opencv学习笔记--卷积和核
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-02-基于Python的卷积运算
- Coursera deeplearning.ai 深度学习笔记4-2-Deep Convolutional Models Case Studies-深度卷积模型案例及代码实现
- 深度学习阅读笔记(四)之卷积网络CNN
- HDU 1695 GCD (容斥 + 莫比乌斯反演)
- 学习笔记TF013:卷积、跨度、边界填充、卷积核
- hdu1695 GCD 学习莫比乌斯反演
- 6.卷积的三个性质及卷积性的应用 [学习笔记]
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解