组合数
本文为转载的文章,转载自:组合 - hfjh
默认会组合数基础内容和二项式定理
学习之前你应该知道:
广义组合数定义
(nm)=nm––m!
nm––=n×(n−1)×(n−2)×...×(n−m+1)
主要内容
组合数常用公式及证明
这里的证明主要分为 3 种
1.用组合意义证明
2.用定义证明(拆成阶乘形式)
3.用前面的公式推导
公式目录
(nk)=nk(n−1k−1)(nk)=(−1)k(k−n−1k)(nm)(mk)=(nk)(n−km−k)(nk)=(n−1k−1)+(n−1k)n∑k=0(km)=(n+1m+1)m∑k=0(n+kk)=(n+m+1m)n∑k=0(rk)(sn−k)=(r+sn)n∑k=0(nk)=2nm∑k=0(−1)k(nk)=(−1)m(n−1m)
不带求和
1.吸收公式(Absorption Identity):
(nk)=nk(n−1k−1)
定义证明:
(nk)=n!(k−n)!×k!
nk(n−1k−1)=nk(n−1)!(n−k)!×(k−1)!=n!(k−n)!×k!
推广:
k(nk)=n(n−1k−1),(n−k)(nk)=n(n−1k)
均可用定义证明,不再赘述。
2.上指标反转(Negating the Upper Index):
(nk)=(−1)k(k−n−1k)
定义证明:
(这里运用组合数广义定义)
(k−n−1k)=(k−n−1)k––k!(k−n−1)k––=(k−n−1)×(k−n−2)×...×(−n)=(−1)k×n×(n+(k−1)−k)×...×(n+1−k)=(−1)knk––
把这个带入就可以了。
3.三项式系数恒等式:
(nm)(mk)=(nk)(n−km−k)
组合意义证明:
从 n 个小球中选 m 个染成红色,再从 m 个红色小球中选 k 个染成蓝色。
从 n 个小球中选 k 个染成蓝色,再从 n−k 个无色小球中选 m−k 个染成红色。
两种方法得到的最终结果等价。
定义证明:
(nm)(mk)=n!m!×(n−m)!×m!k!×(m−k)!=n!k!×(n−m)!×(m−k)!
(nk)(n−km−k)=n!k!×(n−k)!×(n−k)!(n−m)!×(m−k)!=n!k!×(n−m)!×(m−k)!
4.帕斯卡公式
(nk)=(n−1k−1)+(n−1k),k∈[1,n]
组合意义证明
从 n 个小球中选 k 个,一定是最后一个小球不选然后从 n−1 个里面选 k 个和最后一个小球要选然后从 n−1 个里面选 k−1 个的方案数加起来。
定义证明
(nk)=(n−1k−1)+(n−1k)n!k!×(n−k)!=(n−1)!(n−k)!×(k−1)!+(n−1)!(n−k−1)!×(k)!n!k!×(n−k)!=(n−1)!×(k)!×(n−1−k)!+(n−k)!×(n−1)!×(k−1)!(n−k)!×(k−1)!×k!×(n−1−k)!n!=(n−1)!×[(k)!×(n−1−k)!+(n−k)!×(k−1)!](k−1)!×(n−1−k)!n=k!×(n−1−k)!(k−1)!×(n−1−k)!+(n−k)!×(k−1)!(k−1)!×(n−1−k)!n=k+n−kn=n
求和
接下来才是真正有用的东西
1.上指标求和(Summation on the Upper Index):
公式1
n∑k=0(km)=(n+1m+1)
组合证明
有 n+1 个球,选 m+1 个,枚举最后一个选的位置在 k+1 则前 k 个要选 m 个。
推导证明
根据4.帕斯卡公式得
(n+1m+1)=(nm)+(nm+1)=(nm)+(n−1m)+(n−1m+1)=(nm)+(n−1m)+(n−2m)+(n−2m+1)=......=n∑k=0(km)
公式2
m∑k=0(n+kk)=(n+m+1m)
推导证明
m∑k=0(n+kk)=m∑k=0(n+kn)=n+m∑k=n(kn)=n+m∑k=0(kn)−n−1∑k=0(kn)=(m+n+1n+1)−(nn+1)=(m+n+1m)
第 3 行运用了上指标求和的公式1 ,第 3 行还使用了(nn+1)=0
2.范德蒙德卷积
n∑k=0(rk)(sn−k)=(r+sn)
组合证明
有 r+s 个小球选 n 个小球,枚举在前 r 个中选 k 个,在后 s 个中选 n−k 个。
推导证明
这里用了二项式定理
n+m∑k=0(n+mk)xk=(x+1)n+m=(x+1)n(x+1)m=n∑r=0(nr)xr+m∑r=0(ms)xs=n+m∑k=0k∑r=0(nk)(mk−r)xk⇒(n+mk)=k∑r=0(nk)(mk−r)
3.一行之和
n∑k=0(nk)=2n
组合意义证明
从 n 个小球里面选任意个小球,每个小球有选和不选两种情况。
即是所有子集的个数。
推导证明
这里使用帕斯卡公式,以及数学归纳法。
首先在 n=0 时只有 (00)=1,满足 =20
于是对于 n 时,假设 ∑n−1k=0(n−1k)=2n−1 成立。
n∑k=0(nk)=(n0)+n∑k=1((n−1k)+(n−1k−1))=(n0)+n∑k=1(n−1k)+n∑k=1(n−1k−1)=(n0)+n∑k=1(n−1k)+n∑k=0(n−1k)=(n0)+(n−10)+(n−1n)+2n−1∑k=1(n−1k)=2(n0)+2n−1∑k=1(n−1k)=2n−1∑k=0(n−1k)=2×2n−1=2n
依据归纳法,假设成立。
4.交错和
m∑k=0(−1)k(nk)=(−1)m(n−1m)
推导证明
m∑k=0(−1)k(rk)=m∑k=0(k−n−1k)=(m−nm)=(−1)m(n−1m)
运用上指标反转和上指标求和
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App