尽人事,听天命。|

Jerrycyx

园龄:2年9个月粉丝:2关注:1

📂闲话
🔖闲话
2025-03-06 15:58阅读: 3评论: 0推荐: 0

2025.2.21 闲话:递推求组合数前缀和

遇到一道题,其中有一个部分是对于 \(i \in [0,n]\),求:

\[f(i) = \sum_{j=0}^{n} \tbinom{i}{j} \]

要求时间复杂度 \(O(n)\)


首先有一个公式:\(\tbinom{n}{m}+\tbinom{n}{m-1}=\tbinom{n+1}{m}\)

然后我们把 \(\sum_{j=0}^{n} \tbinom{i}{j}\) 拆开,复制一份并上下对齐:

\[\begin{aligned} &\tbinom{i}{0}&+&\tbinom{i}{1}&+&\tbinom{i}{2}&+&\cdots&+&\tbinom{i}{n} \\ +\qquad &&&\tbinom{i}{0}&+&\tbinom{i}{1}&+&\cdots&+&\tbinom{i}{n-1}&+&\tbinom{i}{n}\\ \hline &\tbinom{i}{0}&+&\tbinom{i+1}{1}&+&\tbinom{i+1}{2}&+&\cdots&+&\tbinom{i+1}{n}&+&\tbinom{i}{n} \end{aligned} \]

即:\(2 \times \sum_{j=0}^{n} \tbinom{i}{j} = \tbinom{i}{0} + \sum_{j=1}^{n} \tbinom{i}{j} + \tbinom{i}{n}\)

因为 \(\tbinom{i}{0}=\tbinom{i+1}{0}=1\),所以右式等于 \(\sum_{j=0}^{n} \tbinom{i}{j} + \tbinom{i}{n} = f(i+1) - \tbinom{i+1}{n} + \tbinom{i}{n}\)

即:

\[f(i+1) = f(i) \times 2 - \tbinom{i}{n} + \tbinom{i+1}{n} \]

初始化 \(f(0)=1\),这样就可以 \(O(n)\) 递推 \(f(0 \sim n)\) 了。

posted @   Jerrycyx  阅读(3)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起