「科技」求欧拉数单项

这个是老科技了,但还是记一下。

问题:给定 \(n, k\),求有多少个 \(n\) 阶排列 \(p_1, p_2, \cdots, p_n\),满足恰有 \(k\)\(p_i < p_{i - 1}\)

分析:\(F(n, k)\) 表示有小于 \(k\) 个的方案数,答案就是 \(F(n, k + 1) - F(n, k)\)

考虑 \([0, 1)\) 间均匀随机的实数序列 \(a_1, a_2, \cdots, a_n\)。因为是随机的所以 \(a_i\) 可以看作互不相同,\(a\) 序列就可以看作是排列。

再定义序列 \(b_1, b_2, \cdots, b_n\),满足 \(b_i = a_i - a_{i - 1} + [a_i < a_{i - 1}]\),其实就是在环上 \(a_{i - 1}\) 顺时针走到 \(a_i\) 的距离。根据这个组合意义,可以发现 \(b_1, b_2, \cdots, b_n\) 也是 \([0, 1)\) 间的均匀随机数,并且 \(a\) 满足条件当且仅当 \(\sum b_i < k\)

缩放一下,令 \(b_i\)\([0, m)\) 间的均匀随机数,限制变成 \(\sum b_i < km\)。当 \(m \to \infty\) 时,可以假设 \(b_i\) 都是整数。这样就变成了插板法,推一下式子:

\[\begin{align*} \frac{F(n, k)}{n!} = & \lim_{m \to \infty} \frac{1}{m^n} \left[ \sum_{i = 0}^{k - 1} \binom{n}{i} (-1)^i \binom{(k - i) \cdot m}{n}\right] \\ F(n, k) = & \sum_{i = 0}^{k - 1} \binom{n}{i} (-1)^i (k-i)^n \end{align*} \]

然后就做完了!

提交记录

posted @ 2021-10-12 22:42  alfalfa_w  阅读(235)  评论(0编辑  收藏  举报