[转载] 组合数学

组合数

本文为转载的文章,转载自:组合 - hfjh

默认会组合数基础内容和二项式定理

学习之前你应该知道:

广义组合数定义

(nm)=nm_m!

nm_=n×(n1)×(n2)×...×(nm+1)

主要内容

组合数常用公式及证明

这里的证明主要分为 3 种

1.用组合意义证明

2.用定义证明(拆成阶乘形式)

3.用前面的公式推导

公式目录

(nk)=nk(n1k1)(nk)=(1)k(kn1k)(nm)(mk)=(nk)(nkmk)(nk)=(n1k1)+(n1k)k=0n(km)=(n+1m+1)k=0m(n+kk)=(n+m+1m)k=0n(rk)(snk)=(r+sn)k=0n(nk)=2nk=0m(1)k(nk)=(1)m(n1m)

不带求和

1.吸收公式(Absorption Identity):

(nk)=nk(n1k1)

定义证明:

(nk)=n!(kn)!×k!

nk(n1k1)=nk(n1)!(nk)!×(k1)!=n!(kn)!×k!

推广:

k(nk)=n(n1k1),(nk)(nk)=n(n1k)

均可用定义证明,不再赘述。

2.上指标反转(Negating the Upper Index):

(nk)=(1)k(kn1k)

定义证明:

(这里运用组合数广义定义)

(kn1k)=(kn1)k_k!(kn1)k_=(kn1)×(kn2)×...×(n)=(1)k×n×(n+(k1)k)×...×(n+1k)=(1)knk_

把这个带入就可以了。

3.三项式系数恒等式:

(nm)(mk)=(nk)(nkmk)

组合意义证明:

n 个小球中选 m 个染成红色,再从 m 个红色小球中选 k 个染成蓝色。

n 个小球中选 k 个染成蓝色,再从 nk 个无色小球中选 mk 个染成红色。

两种方法得到的最终结果等价。

定义证明:

(nm)(mk)=n!m!×(nm)!×m!k!×(mk)!=n!k!×(nm)!×(mk)!

(nk)(nkmk)=n!k!×(nk)!×(nk)!(nm)!×(mk)!=n!k!×(nm)!×(mk)!

4.帕斯卡公式

(nk)=(n1k1)+(n1k)k[1,n]

组合意义证明

n 个小球中选 k 个,一定是最后一个小球不选然后从 n1 个里面选 k 个和最后一个小球要选然后从 n1 个里面选 k1 个的方案数加起来。

定义证明

(nk)=(n1k1)+(n1k)n!k!×(nk)!=(n1)!(nk)!×(k1)!+(n1)!(nk1)!×(k)!n!k!×(nk)!=(n1)!×(k)!×(n1k)!+(nk)!×(n1)!×(k1)!(nk)!×(k1)!×k!×(n1k)!n!=(n1)!×[(k)!×(n1k)!+(nk)!×(k1)!](k1)!×(n1k)!n=k!×(n1k)!(k1)!×(n1k)!+(nk)!×(k1)!(k1)!×(n1k)!n=k+nkn=n

求和

接下来才是真正有用的东西

1.上指标求和(Summation on the Upper Index):

公式1

k=0n(km)=(n+1m+1)

组合证明

n+1 个球,选 m+1 个,枚举最后一个选的位置在 k+1 则前 k 个要选 m 个。

推导证明

根据4.帕斯卡公式

(n+1m+1)=(nm)+(nm+1)=(nm)+(n1m)+(n1m+1)=(nm)+(n1m)+(n2m)+(n2m+1)=......=k=0n(km)

公式2

k=0m(n+kk)=(n+m+1m)

推导证明

k=0m(n+kk)=k=0m(n+kn)=k=nn+m(kn)=k=0n+m(kn)k=0n1(kn)=(m+n+1n+1)(nn+1)=(m+n+1m)

第 3 行运用了上指标求和的公式1 ,第 3 行还使用了(nn+1)=0

2.范德蒙德卷积

k=0n(rk)(snk)=(r+sn)

组合证明

r+s 个小球选 n 个小球,枚举在前 r 个中选 k 个,在后 s 个中选 nk 个。

推导证明

这里用了二项式定理

k=0n+m(n+mk)xk=(x+1)n+m=(x+1)n(x+1)m=r=0n(nr)xr+r=0m(ms)xs=k=0n+mr=0k(nk)(mkr)xk(n+mk)=r=0k(nk)(mkr)

3.一行之和

k=0n(nk)=2n

组合意义证明

n 个小球里面选任意个小球,每个小球有选和不选两种情况。

即是所有子集的个数。

推导证明

这里使用帕斯卡公式,以及数学归纳法。

首先在 n=0 时只有 (00)=1,满足 =20

于是对于 n 时,假设 k=0n1(n1k)=2n1 成立。

k=0n(nk)=(n0)+k=1n((n1k)+(n1k1))=(n0)+k=1n(n1k)+k=1n(n1k1)=(n0)+k=1n(n1k)+k=0n(n1k)=(n0)+(n10)+(n1n)+2k=1n1(n1k)=2(n0)+2k=1n1(n1k)=2k=0n1(n1k)=2×2n1=2n

依据归纳法,假设成立。

4.交错和

k=0m(1)k(nk)=(1)m(n1m)

推导证明

k=0m(1)k(rk)=k=0m(kn1k)=(mnm)=(1)m(n1m)

运用上指标反转上指标求和

posted @   jeefy  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示