上升幂转下降幂如何避免斯特林数?

观前提示:这可能浪费你人生中宝贵的几分钟。

万物起源

一切要从神秘的校测说起,考到了对上升幂与组合数乘积求和。
朴素的做法由上升幂转普通幂再转下降幂,同时出现了第一类和第二类斯特林数,递推复杂度至少带平方。也就是这个式子:

\[i^{\overline m}=\sum_k{m\brack k}i^k=\sum_k{m\brack k}\sum_t{k\brace t}i^{\underline t} \]

如果说单看这个式子,第二类斯特林数是有封闭形式的,但是第一类斯特林数的确难以处理,仍然要平方递推。

难道这种思路就走不下去了吗?

混凝土神教

在《具体数学》P211 不为人注目的角落里有着这样一个公式‘(6.9)的推广’:

\[{n\choose m}(n-1)^{\underline{n-m}}=\sum_k{n\brack k}{k\brace m} \]

这个公式看上去极为优美,并且刚好可以简化上面的斯特林数,即得到:

\[i^{\overline m}=\sum_t{m\choose t}(m-1)^{\underline {m-t}}\ i^{\underline m} \]

这时就算套上求和,你也已经可以在线性时间复杂度解决这道题了。
善于学习的 \(czx\) 在阅读《具体数学》时特别留意了这个公式并场切了这道题,带一只 \(\log\) 跑得比国赛选手的线性还快。
但是这个公式《具体数学》并没有给出更多的证明。事实上,这个公式看起来并不显然,无从下手。

组合意义证明

询问 \(harryzhr\),他给出了一个组合的证明:
考虑右式的组合意义。即在 \(n\) 个数中构造 \(k\) 个轮换,再把 \(k\) 个轮换划分成 \(m\) 个集合。发掘其等价于直接在 \(n\) 个数中划分出 \(m\) 个确定起始点的排列。初始选定方案数为 \({n\choose m}\),剩余 \(n-m\) 个数放入 \(m\) 个起点之后,每填一个位置又会产生一个额外的位置,所以方案数是 \(m^{\overline {n-m}}\)
根据定义,\(m^{\overline {n-m}}\)\((n-1)^{\underline{n-m}}\) 是等价的,得证。

(其实没咋听懂,感性理解即可)

更简易的证明

\(xwb\) 给出了更为简易的证明。

前置:下降幂的二项式定理

对于 \(n\in N\),有:

\[(x+y)^{\underline n}=\sum_t{n\choose t}x^{\underline t}y^{\underline {n-t}} \]

证明:

右式有

\[\sum_t{n!\over t!(n-t)!}{x!\over (x-t)!}{y!\over (y-n+t)!}=n!\sum_t{x!\over t!(x-t)!}{y!\over (n-t)!(y-n+t)!} \]

化成组合数,再范德蒙德卷积,即

\[n!\sum_t{x\choose t}{y\choose n-t}=n!{x+y\choose n} \]

得到:

\[n!{(x+y)^{\underline n}\over n!}=(x+y)^{\underline n} \]

得证。

正片:一步秒杀

\(i\) 的上升幂可以根据定义化成下降幂:

\[i^{\overline m}=(i+m-1)^{\underline m} \]

直接展开:

\[\sum_t{m\choose t}(m-1)^{\underline {m-t}}\ i^{\underline m} \]

是的,这就证完了。

这样一看,《具体数学》中这条公式根本就是定义展开的的副产品罢了,闹麻了

posted @ 2025-02-06 20:43  Ydoc770  阅读(49)  评论(0)    收藏  举报