「反演」学习笔记

「反演」学习笔记

小声bb:原本看skyh推的博客,是来学容斥的,莫名其妙被强塞了反演html

概念

好多童鞋还不知道啥是反演,反正听起来挺牛逼的,谁会谁被膜函数

好比说有两个未知量 \(x,y\),咱们用 \(x\) 表达出来了 \(y\),好比一个一次函数:学习

\[y=kx+b \]

那么咱们用 \(y\) 表示 \(x\) 就是:spa

\[x=\frac{y-b}{k} \]

\(emmmm\),这差很少就是个反演。htm

而后咱们就搞高级一点:blog

假设有两个函数 \(f\)\(g\) 知足:字符串

\[f[n] = \sum_{k}a_{n,k}\times g[k] \]

已知 \(f\)\(g\) 的过程就叫作「反演」。get

二项式反演

例题

\(n\) 个小盆友,每一个人有一个编号 \(1,2...,n\)博客

将这 \(n\) 个小盆友排成一列,编号为 \(i\) 的小盆友不能在第 \(i\) 个位置。数学

求出所能排队的方案数,\(n\leq 10^5\)

简单容斥(据说小学生都会??)

  • 假设 \(n=3\)

咱们拿出高一老师(??)常拿的韦恩图像:

定义:

\(A\) 集合:编号为 \(1\) 的小盆友站到 \(1\) 的方案数。

\(B\) 集合:编号为 \(2\) 的小盆友站到 \(2\) 的方案数。

\(C\) 集合:编号为 \(3\) 的小盆友站到 \(3\) 的方案数。

咱们要求的就是 \(n! - |A\cup B\cup C|\),用简单的容斥可得:

\(ans=n! - (|A|+|B|+|C|-|A\cap B|-|B\cap C|-|A\cap C|+ |A\cap B\cap C|)\)

得出公式

咱们能够大胆猜测:

\[ans = \sum_{k=0}^{n}(-1)^k\times \binom{n}{k}\times (n - k)!\;(假设 0!=1) \]

  • 什么意思?

\(\binom{n}{k}\times (n - k)!\) 表示强硬的将 \(k\) 我的放到本身应该放的位置(\(i\) 放到第 \(i\) 个位置),剩下 \(n-k\) 我的随便放的方案数。

  • 为啥要加一个 \((-1)^k\)

好比说你加上了一个 \(k=2\) 的方案数,强硬地将 \(2\) 我的,后面咱们统计 \(k=3\) 时,咱们会发现:在前面 \(k=2\) 时,可能有某个小盆友被放到了本身应该放的位置,因此要

减去这些被多余统计的方案,加法同理。

新定义

定义 \(f[n]\) 表示 \(n\) 我的随便站的方案数。

定义 \(g[n]\) 表示 \(n\) 我的都不站在本身应该在的位置的方案数。

这样咱们直接枚举有多少我的站错位置,即可求出 \(f[n]\)

\[f[n]=\sum_{k=0}^{n}\times \binom{n}{k}\times g[k] \]

可是咱们会发现,咱们能够直接用 \(f[n] = n!\) 求出 \(f[n]\),并且咱们还不会求出 \(g[n]\),难受~~~

小钥匙

咱们会发现以前解决那个例题的公式中有一个这个东东:

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

易得:这个东东只有 \(n=0\) 时才为 \(1\),不然即为 \(0\)

  • 咱们再引进一个神犇数学符号:\([P]\),表示条件 \(P\) 符合时,为 \(1\);不然即为 \(0\),(好像一个 \(bool\))。

因此上面那个东东就能够化为:

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

反演

以前咱们新定义里:

\(g[n]\) 表示出了 \(f[n]\),然而咱们并不知道 \(g[n]\),反而知道 \(f[n]\),咱们就须要一些骚操做(繁衍呸,反演),来求出 \(g[n]\)

说一句废话:

\[g[n] = \sum_{m=0}^{n}[n=m]\times \binom{n}{m}\times g[m] \]

改一下这个废话:

\[g[n] = \sum_{m=0}^{m}[n-m=0]\times \binom{n}{m}\times g[m] \]

哦!!!中间那个条件,咱们是否是能够用一下那个小钥匙?

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

看一看中间那两个恶心的组合数:

能够考虑为从 \(n\) 个物品里,先选 \(m\) 个,再从 \(n-m\) 个里选 \(k\) 个的方案数。

能够变为为从 \(n\) 个物品里,先选 \(k\) 个,再从 \(n-k\) 个里选 \(m\) 个的方案数,组合数能够变为: \(\binom{n-k}{m}\times \binom{n}{k}\)

原式变为:

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

交换一下:

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

而后将 \(m\)\(k\) 交换一下:

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

再次交换:

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

诶!!后面那个东东就是 \(f[n - k]\),可,咱们成功了!!!

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

\(emmmm\),好丑,写好看一点:

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

得出结果

\[f[n]=\sum_{k=0}^{n}\times \binom{n}{k}\times g[k] \]

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

这个好像就是二项式反演

可能与 \(A\) 层的巨佬们学的有点不一样,有错误,请见谅我这个蒟蒻。

莫比乌斯反演

例题

小盆友学英语,他拿到 \(26\) 个小写字母,他拼出若干个长度为 \(n\) 的字符串,求出有多少个字符串的循环节刚好为 \(n\)\(n\leq 10^9\)

连小盆友都知道循环节是啥,不用我说吧....(最短的一个子串复制若干遍后拼起来跟原串相等的字符串)。

新定义

定义 \(f[n]\) 表示长度为 \(n\) 的字符串的个数,显然是 \(26^n\)

定义 \(g[n]\) 表示长度为 \(n\) 且循环节长度为 \(n\) 的字符串的个数。

能够得出:

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

小钥匙

上次咱们用了一个条件表达式,打开了反演的关键,这个咱们一样搞一个:

定义一个 \(\mu[n]\) 知足:(莫某某某搞的)

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

其实这个就是莫比乌斯函数,至于性质,能够看一眼龙蝶的

反演

一样,咱们说一句废话:

\[g[n] = \sum_{m|n}[n=m]\times g[m] \]

将条件表达式变一下:

\[g[n] = \sum_{m|n}[\frac{n}{m}=1]\times g[m] \]

好,用咱们的小钥匙:

\[g[n] = \sum_{m|n}\sum_{d|\frac{n}{m}}\times \mu[d] \times g[m] \]

上次咱们将 \(m\)\(k\) 进行了交换,此次怎么处理呢?

咱们会发现 \(n\) 能将 \(m\) 整除,\(\frac{n}{m}\) 能将 \(d\) 整除,因此咱们能够得出 \(n\) 既能将 \(m\) 整除,又能将 \(d\) 整除,这样咱们就能够将 \(m\)\(k\) 交换了。

\[g[n] = \sum_{d|n}\sum_{m|\frac{n}{d}}\times \mu[d] \times g[m] \]

交换一下:

\[g[n] = \sum_{d|n} \times \mu[d]\sum_{m|\frac{n}{d}} \times g[m] \]

不错,后面那个东东又能够化为咱们的 \(f\),可

\[g[n] = \sum_{d|n} \times \mu[d]\times f[\frac{n}{d}] \]

得出结果

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

\[g[n] = \sum_{d|n} \times \mu[d]\times f[\frac{n}{d}] \]

这个好像就是莫比乌斯反演

其余反演敬请期待

相关文章
相关标签/搜索