组合数的各种性质和定理

组合数的各种性质和定理从m个物品里选出n个的方案数,记作CnmCmnC_m^n,即为组合数组合数有很多很多的性质和定理。。。注意由于本人沉迷玩梗无法自拔,如果看见您看不懂的梗请随意跳过。组合数通项公式Cnm=m!n!∗(m−n)!Cmn=m!n!∗(m−n)!C_m^n=\frac{m!}{n!*(m-n)!}证明:现在我们从m个不同的数里选出n个数组成一个排列,第一个位子上的数有m种取法,第二…

大家好,又见面了,我是你们的朋友全栈君。

从m个物品里选出n个的方案数,记作 Cnm C m n ,即为组合数
组合数有很多很多的性质和定理。。。
注意由于本人沉迷玩梗无法自拔,如果看见您看不懂的梗请随意跳过。

组合数通项公式

Cnm=m!n!∗(m−n)! C m n = m ! n ! ∗ ( m − n ) !




证明:现在我们从m个不同的数里选出n个数组成一个排列,第一个位子上的数有m种取法,第二个位子上的有m-1种,第三个位子上有m-2种。。。共有

m!(m−n)! m ! ( m − n ) !
种

然而,我们对于顺序没有要求,假设取出了n个数,第一个位子上有n种放法,第二个位子上有n-1种。。。所以我们刚才得到的哪个东西还要除一个

n! n !

组合数递推公式

Cnm=Cnm−1+Cn−1m−1 C m n = C m − 1 n + C m − 1 n − 1




证明:从m个不同的数中取n个,第m个数如果取的话有

Cn−1m−1 C m − 1 n − 1
种取法,如果不取则有

Cnm−1 C m − 1 n
种。

如果您是组合数新手,请牢记以上两个公式

性质1

Cnm=Cm−nm C m n = C m m − n




证明:显然从m个物品里选n个和从m个物品里选m-n个丢掉的方案数是一样的。

性质2

Crm+r+1=∑i=0rCim+i C m + r + 1 r = ∑ i = 0 r C m + i i




证明:用组合数的递推公式。

首先

C0m=C0m+1=1 C m 0 = C m + 1 0 = 1




C0m+C1m+1+C2m+2+...+Crm+r C m 0 + C m + 1 1 + C m + 2 2 + . . . + C m + r r
=



C1m+C1m+1+C2m+2+...+Crm+r C m 1 + C m + 1 1 + C m + 2 2 + . . . + C m + r r
=



C1m+2+C2m+2+...+Crm+r C m + 2 1 + C m + 2 2 + . . . + C m + r r
=



Crm+r+1 C m + r + 1 r

性质3

Cnm∗Crn=Crm∗Cn−rm−r C m n ∗ C n r = C m r ∗ C m − r n − r




证明:用组合数的通项公式



Cnm∗Crn= C m n ∗ C n r =




m!n!(m−n)!∗n!r!(n−r)!= m ! n ! ( m − n ) ! ∗ n ! r ! ( n − r ) ! =




m!r!(m−r)!∗(m−r)!(m−n)!(n−r)!= m ! r ! ( m − r ) ! ∗ ( m − r ) ! ( m − n ) ! ( n − r ) ! =




Crm∗Cn−rm−r C m r ∗ C m − r n − r

性质4(二项式定理)

∑i=0mCim=2m ∑ i = 0 m C m i = 2 m




证明:显然

Cim C m i
代表一个m位二进制数有i个0的情况下的数量,那么这个和就是m位二进制数的数量了。

推广一下这个二项式定理:


∑i=0mCim∗xi=(x+1)m ∑ i = 0 m C m i ∗ x i = ( x + 1 ) m



这个又怎么证明呢?先把

(x+1)m ( x + 1 ) m
写成

(x+1)(x+1)(x+1)... ( x + 1 ) ( x + 1 ) ( x + 1 ) . . .
的格式,然后每一项很精妙啊,比如说i次方项,选的

i i
个


x

x

是从哪个括号里来呢?有

Cim C m i
种方案吧,所以

xi x i
项的系数是

Cim C m i
。

这就是杨辉三角的应用(可以自行百度)

性质5

C0m−C1m+C2m−...±Cmm=0 C m 0 − C m 1 + C m 2 − . . . ± C m m = 0




证明:假如m是奇数的花,由性质1可知正确。

假如m是偶数的花,这个里面的花,用一下递推公式,然后显然

C0m−1=C0m=1 C m − 1 0 = C m 0 = 1
并且

Cm−1m−1=Cmm=1 C m − 1 m − 1 = C m m = 1
,则:



C0m−C1m+C2m−...+Cmm= C m 0 − C m 1 + C m 2 − . . . + C m m =




C0m−1−C0m−1−C1m−1+C1m−1+C2m−1−...+Cm−1m−1=0 C m − 1 0 − C m − 1 0 − C m − 1 1 + C m − 1 1 + C m − 1 2 − . . . + C m − 1 m − 1 = 0

性质6

C0m+C2m+C4m...=C1m+C3m+C5m+...=2m−1 C m 0 + C m 2 + C m 4 . . . = C m 1 + C m 3 + C m 5 + . . . = 2 m − 1




证明:这个根据性质4和性质5可知正确。

性质7

Crm+n=C0m∗Crn+C1m∗Cr−1n+…+Crm∗C0n C m + n r = C m 0 ∗ C n r + C m 1 ∗ C n r − 1 + … + C m r ∗ C n 0




证明:很简单,考虑我选出的r个物品在前m个物品有几个,在后n个物品里有几个即可。

特别的:

Cnm+n=C0m∗C0n+C1m∗C1n+…+Cmm∗Cmn C m + n n = C m 0 ∗ C n 0 + C m 1 ∗ C n 1 + … + C m m ∗ C n m



这个是根据性质1变形得到的。

性质8

n∗Cnm=m∗Cn−1m−1 n ∗ C m n = m ∗ C m − 1 n − 1




证明:运用通项公式



n∗Cnm= n ∗ C m n =




n∗m!n!(m−n)!= n ∗ m ! n ! ( m − n ) ! =




m!(n−1)!(m−n)!= m ! ( n − 1 ) ! ( m − n ) ! =




m∗(m−1)!(n−1)!(m−n)!=m∗Cn−1m−1 m ∗ ( m − 1 ) ! ( n − 1 ) ! ( m − n ) ! = m ∗ C m − 1 n − 1

性质9

∑i=1nCin∗i=n∗2n−1 ∑ i = 1 n C n i ∗ i = n ∗ 2 n − 1




证明:用通项公式



∑ni=1Cin∗i=n∗2n−1= ∑ i = 1 n C n i ∗ i = n ∗ 2 n − 1 =




∑ni=1n!(i−1)!(n−i)!= ∑ i = 1 n n ! ( i − 1 ) ! ( n − i ) ! =




(∑ni=1(n−1)!(i−1)!(n−i)!)∗n= ( ∑ i = 1 n ( n − 1 ) ! ( i − 1 ) ! ( n − i ) ! ) ∗ n =




(∑n−1i=0Cin)∗n= ( ∑ i = 0 n − 1 C n i ) ∗ n =


现在看性质4。



n∗2n−1 n ∗ 2 n − 1

性质10

∑i=1nCin∗i2=n∗(n+1)∗2n−2 ∑ i = 1 n C n i ∗ i 2 = n ∗ ( n + 1 ) ∗ 2 n − 2




证明:

和上一个性质有些类似。



∑ni=1Cin∗i2= ∑ i = 1 n C n i ∗ i 2 =


用和上面差不多的方法得到:



(∑n−1i=0Cin−1∗(i+1))∗n= ( ∑ i = 0 n − 1 C n − 1 i ∗ ( i + 1 ) ) ∗ n =




(∑n−1i=0Cin−1∗i+∑n−1i=0Cin−1)∗n= ( ∑ i = 0 n − 1 C n − 1 i ∗ i + ∑ i = 0 n − 1 C n − 1 i ) ∗ n =


用性质9和性质4可以得到:



(2n−2∗(n−1)+2n−1)∗n= ( 2 n − 2 ∗ ( n − 1 ) + 2 n − 1 ) ∗ n =


很明显

2n−1=2∗2n−2 2 n − 1 = 2 ∗ 2 n − 2


所以原式=

2n−2∗(n+1)∗n 2 n − 2 ∗ ( n + 1 ) ∗ n

性质11

∑i=0n(Cin)2=Cn2n ∑ i = 0 n ( C n i ) 2 = C 2 n n




证明:boshi说,他的门前有两棵树,
一棵是枣树,另一棵也是枣树,每棵树上有n个枣子,每个枣子都有一个不同的神奇的膜法符号。现在boshi从两棵树上一共打下了n个枣子,那么一共有多少种方案?是

Cn2n C 2 n n
,也是第一棵树上打下i个枣子,从第二棵树上打下(n-i)棵枣子的方案,根据乘法原理乘起来,又因为

Cin=Cn−in C n i = C n n − i
,所以得到上一个式子。

卢卡斯定理

简单的说就是求 Cnm%p C m n % p 的时候可以化作 Cnm=Cn/pm/p∗Cn%pm%p C m n = C m / p n / p ∗ C m % p n % p ,那么只要递归 Cn/pm/p C m / p n / p 即可。
证明我蠢我不会自己想

后记

啊啊啊搞了一下午终于证完了累死了。。。感觉自己和组合数的感情有了明显的提升(才怪)。。。
在文章的最后%一发数王。。。
%%%%%%%%%数王您太强了%%%%%%%%%%%
数王说以上所有定理都可以用那个那个那个证,虽然我不知道那个是哪个,但是反正好强啊%%%%%%%%
好吧以上都是不正经内容,正经内容是:
在做题的时候大家可能不一定都会遇到这些性质,但是在手动证明完这些性质后对于组合数变形的问题就会有更深一层的理解,总之,组合数性质可以用一下方法推出:
1.情景假设法(假设boshi从枣树选枣子的方案。。。)
2.隔板法(boshi把枣子放成一排,通过在枣子间添加隔板来分组。。。)
3.通向公式法
4.递推公式法
以上。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159936.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • C#FindWindowEx参数详解

    C#FindWindowEx参数详解FindWindowEx参数详解本函数的其他内容在网络上都比较多,这里主要说一下它的参数设置和搜索结果的区别。函数功能:在窗口列表中寻找与指定条件相符的第一个子窗口。该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。函数原型:HWNDFindWindowEx(HWNDh

    2022年6月1日
  • spring cloud总览和架构图[通俗易懂]

    spring cloud总览和架构图[通俗易懂]本节主要是根据微服务的技术架构图,介绍下springcloud微服务体系中的核心组件。下面是spring官网的springcloud微服务架构图:核心组件说明:分享2张微服务的架构图:之后的文章中,会针对各组件和底层原理调优,以及工作中遇到的一些坑,进行一些记录和说明。1、各组件的原理和使用2、服务划分和数据库拆分思路3、微服务的部署方案4、微服务中的一些优化…

    2022年6月5日
  • 03_SpringBoot不同环境之间的相互切换

    03_SpringBoot不同环境之间的相互切换

    2021年8月22日
  • 技术串讲 CAS 有用

    技术串讲 CAS 有用

    2021年6月10日
  • 深入理解Java类加载器(1):Java类加载原理解析

    深入理解Java类加载器(1):Java类加载原理解析1      基本信息每个java开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是java技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一定理解有助于排查程序中出现的类加载失败等技术问题,对理解java虚拟机的连接模型和java语言的动态性

    2022年8月11日
  • TCP/IP及内核参数优化调优

    TCP/IP及内核参数优化调优

    2022年2月9日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号