反演初步和其他
参考了刘汝佳老师《算法艺术与信息学竞赛》。 离散变换与反演 有些时候,我们所求解问题的答案可以表示成一个类似前缀和的形式: \(f(x)=\sum a_ig(i)\) 。 更多时候, \(g(x)\) 是我们所需的答案,不易求出;而 \(f(x)\) 则可以通过另一种更好的方式求出来。如何根据 \(f(x)=\sum a_ig(i)\) 来推导出 \(g(x)\) 的解析式呢?这个反推的过程,我们可以叫做 反演 。我们用一个例子来具体说明。 我们已经用容斥原理得出了错排问题的答案,即在 \(n\) 个元素中的所有排列中,第 \(i(1 \leq i \leq n)\) 个元素不是 \(i\) 的排列数目 \(D_n\) 。现在我们来尝试用反演的方法。 我们反过来求:有且仅有 \(k\) 个元素处在正确位置的方案数为 \(\dbinom{n}{k}D_{n-k}\) ,即剩余的 \(n-k\) 个元素不允许再排在原来的位置。 易知,所有排列里,一定存在 \(0,1,\cdots,n\) 个元素恰好排在其位置的方案。我们把他们加起来得到: \[ P_n=n!=\sum_{k=0}^n \dbinom{n}{k}D_{n-k} \tag{*} \] 反演(解出 \(D_n\) )得到: \[ D_n=n!\sum_{r=0}^n{(-1)^r \frac{1}{r!}} \tag{**}