前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >排列组合公式的原理_有序排列组合公式

排列组合公式的原理_有序排列组合公式

作者头像
全栈程序员站长
发布2022-11-01 16:32:11
1.8K0
发布2022-11-01 16:32:11
举报
文章被收录于专栏:全栈程序员必看

绪论:加法原理、乘法原理# 分类计数原理:做一件事,有n类办法,在第1类办法中有m1种不同的方法,在第2类办法中有m2种不同的方法,…,在第n类办法中有mn种不同的方法,那么完成这件事共有N=m1+m2+…+mn种不同的方法。

分步计数原理:完成一件事,需要分成n个步骤,做第1步有m1种不同的方法,做第2步有m2种不同的方法,…,做第n步有mn种不同的方法,那么完成这件事共有N=m1×m2×⋯×mn种不同的方法。

区别:分类计数原理是加法原理,不同的类加起来就是我要得到的总数;分步计数原理是乘法原理,是同一事件分成若干步骤,每个步骤的方法数相乘才是总数。

排列问题

排列数# 从n个不同元素种取出m(m≤n)个元素的所有不同排列的个数,叫做从n个不同元素种取出m个元素的排列数,用符号Amn表示。

排列数公式# Amn=n(n−1)(n−2)⋯(n−m+1)=n!(n−m)!,n,m∈N∗,并且m≤n (规定0!=1)

推导:把n个不同的元素任选m个排序,按计数原理分步进行:

取第一个:有n种取法; 取第二个:有(n−1)种取法; 取第三个:有(n−2)种取法; …… 取第m个:有(n−m+1)种取法;

根据分步乘法原理,得出上述公式。

排列数性质# Amn=nAm−1n−1 可理解为“某特定位置”先安排,再安排其余位置。

Amn=mAm−1n−1+Amn−1 可理解为:含特定元素的排列有mAm−1n−1,不含特定元素的排列为Amn−1。

组合问题

组合数# 从n个不同元素种取出m(m≤n)个元素的所有不同组合的个数,叫做从n个不同元素种取出m个元素的组合数,用符号Cmn表示。

组合数公式# Cmn=AmnAmm=n(n−1)(n−2)⋯(n−m+1)m!=n!m!(n−m)!,n,m∈N∗,并且m≤n C0n=Cnn=1 证明:利用排列和组合之间的关系以及排列的公式来推导证明。

将部分排列问题Amn分解为两个步骤:

第一步,就是从n个球中抽m个出来,先不排序,此即组合数问题Cmn;

第二步,则是把这m个被抽出来的球排序,即全排列Amm。

根据乘法原理,Amn=CmnAmm,那么

Cmn=AmnAmm=n(n−1)(n−2)⋯(n−m+1)m!=n!m!(n−m)! 组合数的性质# Cmn=Cn−mn 可以理解为:将原本的每个组合都反转,把原来没选的选上,原来选了的去掉,这样就变成从n个元素种取出n−m个元素,显然方案数是相等的。

递推公式Cmn=Cmn−1+Cm−1n−1 可理解为:含特定元素的组合有Cm−1n−1,不含特定元素的排列为Cmn−1。还不懂?看下面。

Example

从1,2,3,4,5(n=5)中取出2(m=2)个元素的组合(Cmn):

12 13 14 15 23 24 25 34 35 45

显然,这些组合中要么含有元素“1”,要么不含。

其中含有“1”的是:12 13 14 15

把里面的“1”都挖掉:2 3 4 5

而上面这个等价于从2,3,4,5(n−1)中取出1(m−1)个元素的组合。

其中不含“1”的是:23 24 25 34 35 45 上面等价于从2,3,4,5(n−1)中取出2(m)个元素的组合。

而总方案数等于上面两种情况方案数之和,即Cmn=Cmn−1+Cm−1n−1。

组合数求和公式# C0n+C1n+C2n+⋯+Cnn=2n 我们感性认知一下,上面这个式子的左边表示什么呢?

把从n个球中抽出0个球的组合数(值为1)、抽出1个球的组合数、抽出2个球的组合数、……、抽出n个球的组合数相加。

换句话说,就是从n个球中随便抽出一些不定个数球,问一共有多少种组合。

对于第1个球,可以选,也可以不选,有2种情况。 对于第2个球,可以选,也可以不选,有2种情况。 对于任意一个球,可以选,也可以不选,有2种情况。

根据乘法原理,一共2×2×⋯×2⏟n个2相乘=2n种组合。

想要严谨的证明?数学归纳法:

当m=1时,C01+C11=2=21成立。

假设n=k(k∈N∗)时等式成立,即

k∑i=0Cik=2n 成立,当n=k+1时,

C0k+1+C1k+1+C2k+1+⋯+Ckk+1+Ck+1k+1=C0k+1+(C0k+C1k)+(C1k+C2k)+⋯+(Ck−1k+Ckk)+Ck+1k+1=(C0k+C1k+C2k+⋯+Ckk)+(C0k+C1k+C2k+⋯+Ckk)=2×2k=2k+1 等式也成立。

由1、2得,等式对n∈N∗都成立。

也可偷懒地用二项式定理证明(其实二项式定理也是用数学归纳法证明的):

(a+b)n=n∑k=0Cknan−kbk 令a=b=1,就得到了

n∑i=0Cin=2n 类似的公式(由Cmn=Cn−mn推导):

C0n+C2n+C4n+⋯=C1n+C3n+C5n+⋯=2n−1

杨辉三角

这个神奇的图形和组合数、二项式定理密切相关。

杨辉三角可以帮助你更好地理解和记忆组合数的性质:

第n行的m个数可表示为 Cm−1n−1,即为从n−1个不同元素中取m−1个元素的组合数。

第n行的数字有n项。

每行数字左右对称(第n行的第m个数和第n−m+1个数相等,Cmn=Cn−mn),由1开始逐渐变大。

每个数等于它上方两数之和(第n+1行的第i个数等于第n行的第i−1个数和第i个数之和,即Cin+1=Cin+Ci−1n)。

(a+b)n的展开式中的各项系数依次对应杨辉三角的第n+1行中的每一项(二项式定理)。

以下来自维基百科

二项式系数

二项式系数可排列成帕斯卡三角形。 在数学上,二项式系数是二项式定理中各项的系数。一般而言,二项式系数由两个非负整数n和k为参数决定,写作,定义为的多项式展开式中,项的系数,因此一定是非负整数。如果将二项式系数写成一行,再依照顺序由上往下排列,则构成帕斯卡三角形。 (nk)(1+x)nxk(n0),(n1),…,(nn)n=0,1,2,…

二项式系数常见于各数学领域中,尤其是组合数学。事实上,可以被理解为从n个相异元素中取出k个元素的方法数,所以大多读作「n取k」。二项式系数的定义可以推广至n是复数的情况,而且仍然被称为二项式系数。

二项式系数亦有不同的符号表达方式,包括:C(n,k)、nCk、nCk、、[注3],其中的C代表组合(combinations)或选择(choices)。很多计算机使用含有C的变种记号,使得算式只占一行的空间,相同理由也发生在置换数,例如写作P(n,k)。 CknCnkPnk

定义及概念 对于非负整数n和k,二项式系数定义为的多项式展开式中,项的系数,即 (nk)(1+x)nxk

(1+x)n=n∑k=0(nk)xk=(n0)+(n1)x+⋯+(nn)xn 事实上,若x、y为交换环上的元素,则

(x+y)n=∑nk=0(nk)xnkyk

此数的另一出处在组合数学,表达了从n物中,不计较次序取k物有多少方式,亦即从一n元素集合中所能组成k元素子集的数量。

计算二项式系数

除展开二项式或点算组合数量之外,尚有多种方式计算的值。 (nk)

递归公式 以下递归公式可计算二项式系数:

(nk)=(n−1k−1)+(n−1k)∀n,k∈N

其中特别指定:

(n0)=1∀n∈N∪{0},(0k)=0∀k∈N.

此公式可由计算(1 + X ) n −1 (1 + X )中的X k项,或点算集合{1, 2, …, n }的k个元素组合中包含n与不包含n的数量得出。

显然,如果k > n,则。而且对所有n,,故此上述递归公式可于此等情况下中断。递归公式可用作建构帕斯卡三角形。 \tbinom nk=0\tbinom nn=1

帕斯卡三角形(杨辉三角)

有关二项式系数的恒等式

关系式

阶乘公式能联系相邻的二项式系数,例如在k是正整数时,对任意n有:

(n+1k)=(nk)+(nk−1) (nk)=nk(n−1k−1) (n−1k)−(n−1k−1)=n−2kn(nk) 两个组合数相乘可作变换:

(ni)(im)=(nm)(nmim) n∑r=0(nr)=2n k∑r=0(n+r−1r)=(n+kk) nk∑r=0(−1)r(n+1)k+r+1(nkr)=(nk)−1 n∑r=0(dndr)=1dd∑r=1(1+e2πrid)dn n∑i=m(a+ii)=(a+n+1n)−(a+mm−1) (a+mm−1)+(a+mm)+(a+m+1m+1)+…+(a+nn)=(a+n+1n) Fn=∞∑i=0(nii) Fn−1+Fn=∞∑i=0(n−1−ii)+∞∑i=0(nii)=1+∞∑i=1(nii−1)+∞∑i=1(nii)=1+∞∑i=1(n+1−ii)=∞∑i=0(n+1−ii)=Fn+1 主条目:朱世杰恒等式

n∑i=m(ia)=(n+1a+1)−(ma+1)(ma+1)+(ma)+(m+1a)…+(na)=(n+1a+1) 二阶求和公式

n∑r=0(nr)2=(2nn) n∑i=0(r1+n−1−ir1−1)(r2+i−1r2−1)=(r1+r2+n−1r1+r2−1) (1−x)−r1(1−x)−r2=(1−x)−r1−r2 (1−x)−r1(1−x)−r2=(∞∑n=0(r1+n−1r1−1)xn)(∞∑n=0(r2+n−1r2−1)xn)=∞∑n=0(n∑i=0(r1+n−1−ir1−1)(r2+i−1r2−1))xn (1−x)−r1−r2=∞∑n=0(r1+r2+n−1r1+r2−1)xn 主条目:范德蒙恒等式

k∑i=0(ni)(mki)=(n+mk) 三阶求和公式 主条目:李善兰恒等式

(n+kk)2=k∑j=0(kj)2(n+2k−j2k)

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 排列问题
  • 组合问题
  • 杨辉三角
  • 以下来自维基百科
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档