【学术篇】The Xuanku Inversion Magic学习笔记

退役之前写的 然后因为退役就咕咕咕了...
后来发现数学考试能用的到个鬼就发布出来了QwQ
主要是方便自己没登录的时候查阅...
显然子集什么的是没有学会的QwQ
所以学OI的话不要看本文!!!!!>


以下是懒得修改和编辑的原文:

基本引用自vfleaking大大的幻灯片...
我知道我写的没人看你萌只想要个链接而已~
本文注释~ 为了不影响阅读就添加一个跳转咯~


什么是反演:

假设有两个函数\(f\)\(g\)满足

\[f(n)=\sum_ka_{n,k}g(k) \]

已知\(g\)\(f\)当然很水啦,而已知\(f\)\(g\)的过程就称为反演。
在一般情况下,直接裸上求反演只能高斯消元解方程爽爽……
利用一些特别的反演,可以给解题提供思路。
即,可以用未知量表示已知量,然后解出来。

反演(Inversion)的过程就像变一场炫酷(Xuanku(?))的魔术(Magic)一样, 所以我们就有了TXIM(The Xuanku Inversion Magic)这种东西 显然是在一本正经的胡说八道←_←


我们考虑一个简单问题:

说从前有\(n\)个人,编号为\(1,…,n\)
\(n\)个人站成一排,编号为\(i\)的人不能站在第\(i\)个。
求方案数。
\(n \leqslant 10^5\)

啊 我会容斥! 小学生的容斥就不说了qwq, 我们说一下中学生的容斥.
我们假如\(n\)个人都在随便站, 那么情况显然一共有\(n!\)种;
如果有至少1个人站对, 我们有\(n\)种方法选出这个站对的人, 剩下人有\((n-1)!\)种站法, 一共有\(n*(n-1)!\)种.
如果有至少2个人站对, 我们有\(\binom n2\)种选法选出站对的人, 剩下人有\((n-2)!\)种站法, 一共有\(\binom n2*(n-2)!\)种.
...
如果有至少k个人站对, 我们有\(\binom nk\)种方法选出站对的人, 剩下人有\((n-k)!\)种站法, 一共有\(\binom nk*(n-k)!\)种.

根据容斥, 令\(F(k)\)表示要求至少\(k\)个人站对的情况总数, 即\(F(k)=\binom nk*(n-k)!\), 我们有

\[ans=F(0)-F(1)+F(2)-F(3)+...+(-1)^n*F(n)=\sum_{k=0}^n(-1)^kF(k)=\sum_{k=0}^n(-1)^k\binom ni(n-k)! \]

这样就搞定了~ 那么这个容斥系数\(\pm1\)是怎么来的呢?
我们发现, 至少\(m\)个人站对的话, 一定有\(0,1,2,3...m-1\)个人站对了, 那我们在之前的过程中重复统计了多少次呢?
我们有\(\binom mk\)次统计至少\(k\)个人站对的情况, 所以一共多统计了

\[\sum_{k=0}^{m-1}(-1)^k\binom mk \]

这么多次, 我们只需要减回去就行了~ 那这玩意怎么推啊?
我们可以知道有这么个东西: (牛顿)二项式定理:

\[(x+y)^k=\sum_{i=0}^n\binom nix^iy^{n-i} \]

所以

\[\sum_{k=0}^{m-1}(-1)^k\binom mk=\sum_{k=0}^m(-1)^k\binom mk-(-1)^m\binom mm=(1+(-1))^m-(-1)^m=(-1)^m \]

即对于每个\(m\), \(F(m)\)被多统计了\(-(-1)^m\)次, 减掉就行了~

是不是很简单? 主要就是利用了

\[\sum_{k=0}^n(-1)^k\binom nk=0 \]

这个性质, 不过嘛, 有个小例外, 就是当\(n=0\)时, 值应该为1. 所以我们要改一改:

\[\sum_{k=0}^n(-1)^k\binom nk=[n=0] \]

这个问题我们就这么解决了. 先别急着撒花, 我们从另一个角度思考一下这个问题.
\(f(x)\)表示\(x\)个人随便站的方案数, \(g(x)\)表示\(x\)个人都站错的方案数. 显然

\[f(n)=\sum_{k=0}^ng(k) \]

我们如果知道了\(g\)的表达式, 就可以推出\(f\)了.
可是, 我们现在知道的明明是\(f\), 我们要求的红红才是\(g\).
那能不能想办法用\(f\)来表示\(g\)呢? 我们不妨大胆的猜测是可以的.

有一句看上去是废话的话:

\[g(n)=\sum_{m=0}^n[n-m=0]\binom nmg(m) \]

然后我们发现有个\([n-m=0]\), 那就把刚才非常炫酷的性质

\[\sum_{k=0}^n(-1)^k\binom nk=[n=0] \]

代进去好了~

\[=\sum_{m=0}^n\sum_{k=0}^{n-m}(-1)^k\binom {n-m}k\binom nmg(m) \]

然后\(\binom {n-m}k\binom nm\)表示了从\(n\)中选两个长度分别为\(m\)\(k\)的子集, 所以和\(\binom nk\binom {n-k}m\)等价, 那我们调整(jiao)一下柿纸里可爱的求和符号~

\[=\sum_{k=0}(-1)^k\binom nk\sum_{m=0}^{n-k}\binom{n-k}mg(m) \]

好的我们看到最后的小朋友\(\sum_{m=0}^{n-k}\binom{n-k}mg(m)\)有那么一点眼熟~ 你好啊, \(f\)君~

\[g(n)=\sum_{k=0}(-1)^k\binom nkf(n-k) \]

而且很显然, \(f(n-k)\)在我们的假设下就是\((n-k)!\), 所以和我们上面计算的结果是一个样的~

然后我们把上面的柿子换一下下标, 让它在数学的角度看更好看一点...从我的角度并看不出它好看在哪qwq
这样我们就推出了大名鼎鼎的二项式反演!!

\[f(n)=\sum_{k=0}^n\binom nkg(k) \\ g(n)=\sum_{k=0}^n(-1)^{n-k}\binom nkf(k) \]


我们考虑另一个小问题:

求长度为\(n\)且仅包含小写英文字母且循环节长度恰为\(n\)的字符串的个数。
循环节……就是最短的复制若干遍后拼起来跟原串相等的字符串。
\(n\leqslant10^9\)

我们设\(f(x)\)为长度为\(x\)的字符串的总数, \(g(x)\)为长度为\(x\)而且周期为\(x\)的字符串(其实就是没有长度小于\(x\)的循环节啦~)的总数. 那么很显然

\[f(n)=\sum_{d|n}g(d) \]

woc这不是莫比乌斯反演么= = 水过了下一个..
我们假设忘记了莫比乌斯反演. 现在我们只知道我们需要一个反演.
我们假设有个函数\(\mu\), 有如下的性质.

\[\sum_{d|n}\mu(d)=[n=1] \]

你为什么那么熟练啊!
然后我们按照套路找到一句废话并将上面的结论代入

\[g(n)=\sum_{m|n}[\frac nm=1]g(m)=\sum_{m|n}\sum_{d|\frac nm}\mu(d)g(m) \]

套路来了, 因为\(d|\frac nm\), 所以\(md|n\), 所以\(m|\frac nd\)! 我们还是调整(jiao)一下柿纸里的求和符号~

\[g(n)=\sum_{d|n}\mu(d)\sum_{m|\frac nd}g(m) \]

哟, 这不是\(f\)冒出来了么~

\[g(n)=\sum_{d|n}\mu(d)f(\frac nd) \]

我们冥冥之中感觉这个柿纸里的\(\mu\)是传说中的莫比乌斯函数~

然后就完了. 这其实就是莫比乌斯反演.
或许还可以换一下下标

\[f(n)=\sum_{d|n}g(d) \\ g(n)=\sum_{d|n}\mu(\frac nd)f(d) \]

另外狄利克雷卷积角度的解释由于和本文无关但是我就是想提一下所以扔到了里~

莫比乌斯反演


注:

  1. 本文的\(\binom nm\)均表示组合数, 即\(C_n^m\), 就系表达式为\(C_n^m=\frac {n!}{m!(n-m)!}\)的那个.
  2. \([x]\)(\(x\)为表达式)表示当\(x\)成立时为1, 否则为0.
  3. 另外狄利克雷卷积形式的理解就是:

\[f(n)=\sum_{d|n}g(d) =>f=g*1 \\ f*\mu=(g*1)*\mu=g*(1*\mu)=g*\epsilon=g \\ g=f*\mu => g(n)=\sum_{d|n}f(d)\mu(\frac nd) \]

posted @ 2018-10-20 16:05  Enzymii  阅读(279)  评论(1编辑  收藏  举报