一类排列组合计数问题

一些定义


0=1 P(mm)=m! C(0m)=1

P(nm) 表示在 m 个不同的数中选n个数的排列数.
显然有

P(nm)=m(m1)(mn+1)=m!(mn)!


C(nm) 表示在 m 个不同的数中选n个数的组合数.
显然有

C(nm)=1n!P(nm)=m!(mn)!n!


【有重复元素的排列问题】

l1 个重复的元素, l2 个重复的元素, l3 个重复的元素……排成一列不同的方案数为:

(l1+l2+l3+)!l1!2!l3!


一些性质

对于排列组合,有一些必须掌握的基本性质,如:


性质1

P(nm)=C(nm)P(nn)

证:
P(nm)=m!(mn)!C(nm)=m!n!(mn)!P(nn)=n!

C(nm)P(nn)=m!(mn)!=P(nm)

从中我们可以看出:组合数与排列数之间有很好的联系


性质2

C(nm)=C(mnm)

证:
C(nm)=m!n!(mn)!C(mnm)=m![m(mn)]!(mn)!

C(mnm)=m!n!(mn)!=C(nm)

从中我们可以看出:组合数具有很好的对称性


性质3

C(nm)=C(nm1)+C(n1m1)

证:
C(nm)=m!n!(mn)!C(nm1)=(m1)!n!(mn1)!

C(n1m1)=(m1)!(n1)!(mn)!

C(nm1)=(m1)!n!(mn1)!=(m1)!(mn)n!(mn)!

C(n1m1)=(m1)!(n1)!(mn)!=(m1)!nn!(mn)!

C(nm1)+C(n1m1)=m(m1)!n!(mn)!=m!n!(mn)!=C(nm)

从中我们可以看出:组合数具有很好的迭代性


性质4

C(0m)+C(1m)+C(2m)+...+C(mm)=2m

证:(这个性质很重要,在接下来的 例4中给出简单证明.)

从中我们可以看出:组合数具有很好的转化性


性质5

nn!=(n+1)!n!
n(n+1)!=1n!1(n+1)!

证:
nn!=[(n+1)1]n!=(n+1)n!n!=(n+1)!n!
n(n+1)!=n+11(n+1)!=n+1(n+1)!1(n+1)!=1n!1(n+1)!

以上两个公式都运用到拆项思想,是化简式子时一常用的技巧

以上性质会用的较广,下面我们还是实践一下,通过做几道数学题巩固巩固。


例题


例1

求证:

C(12)+C(23)+C(34)+...+C(m1m)=C(2m+1)1

证:
C(12)+C(23)+C(34)+...+C(m1m)
= C(02)+C(12)+C(23)+C(34)+...+C(m1m)C(02)
= C(13)+C(23)+C(34)+...+C(m1m)C(02)
= C(24)+C(34)+...+C(m1m)C(02)
= C(35)+...+C(m1m)C(02)
= .......
= C(m2m)+C(m1m)C(02)
= C(m2m)+C(m1m)1
= C(m1m+1)1
= C(2m+1)1


【总结】

以上求证方法,运用到了性质3,通过拆项的思想,进行等量代换,合并同类,最终得到结果.

C(nm)=C(nm1)+C(n1m1)
可推出
C(nm+1)=C(nm)+C(n1m)


例2

求用 09 10 个数字组成的无重复数字的四位偶数个数.

【思路1】

分类讨论:

{i}当0为尾时,有 P(39) 种排法.

{ii}当2}{4}{6}{8为尾时继续分类讨论:
{ii1}如果填0,则有 C(12)P(28) 种排法
{ii2}如果不填0,则有 P(38) 种排法

故,{ii}有 C(14)(C(12)P(28)+P(38) 种排法

P(39)+C(14)(C(12)P(28)+P(38)
=504+4448
=2096


【思路2】

根据解法1的思路,不难看出,对于当 2,4,6,8 为结尾时,我们只需在开头放非 0 的数,其余随便放即可,故{ii}有C(14)C(18)P(28)=1792种排法


【思路3】

根据解法1的思路,不难看出,对于当 2,4,6,8 为结尾时,可以从所有方案中减去以 0 开头的方案,故{ii}有 C(14)(P(39)P(28)=1792 种排法


【思路4】

千位选 1,3,5,7,9 ,个位选 0,2,4,6,8 ,其余位任选,显然有 C(15)C(15)P(28) 种排法
千位选 2,4,6,8 ,个位在剩余偶数选一个,其余位任选,显然有 C(14)C(14)P(28) 种排法

故总的方案数有 C(15)C(15)P(28)+C(14)C(14)P(28)=1400+896=2296 种排法


【思路5】

四位数有: P(410)P(39)=4536

四位奇数有: C(15)(P(39)P(28)=2240 种排法.

故四位偶数有: 45362240=2296 种排法


【总结】

可以看出,一道非常简单的小学数学题,能用非常多的解法解出,并不是想说这道题有多难,而是要学会触类旁通,一题多解,灵活运用排列组合


例3

3 个女生,5个男生排成一列
1.求女生必须全排在一起的方案数
2.求女生必须全分开的方案数
3.求两端都不能排女生的方案数
4.求两端不能都排女生的方案数


子问题1

【思路1】

显然,对于女生的位置只有 83+1=6 种排法,而调整有 P(33)=3!=6 种排法,对于男生显然有 P(55)=5!=120 种排法,故总共有 66120=4320 种排法

【思路2】(捆绑法)

3 个女生看成1捆,故总有 P(66)P(33)=40320 种排法


子问题2

【思路1】(正难则反法)

8 个位置共有P(88)=8!=40320种排法

2 个女相邻,且两个女旁边是男的:
{i}当这两个相邻女生在开头和结尾时:共有C(23)P(22)C(12)C(15)P(55)=7200种排法
{ii}当这两个相邻女生不在开头和结尾时:共有 C(23)P(22)C(15)P(25)P(44)=14400 种排法

3 个女相邻,共有:C(33)P(33)C(16)P(55)=4320种排法

故不相邻女生共有 403207200144004320=14400 种排法


然而正着推简单很多…

【思路2】

显然,我们可以先把 5 个男生排成一列,共有P(55)=5!=120种排法
再把 3 个女生插到5个男生组成的 6 个“空档”中,共有P(36)=654=120种排法
故总共有 120120=14400 种排法


子问题3

【思路1】

显然对于两头只能摆男生,就有 P(25)=20 种排法
其余位可任摆,就有 P(66)=6!=720 种排法
共有 20720=14400 种排法

【思路2】(间接法)

一共有 P(88)=8!=40320 种排法
去除女生排在前面: C(13)P(77)=15120
去除女生排在后面: C(13)P(77)=15120
加上女生即排在后面也排在前面: P(23)P(66)=4320
故总共有 403201512015120+4320=14400 种排法

【思路3】

对于中间6个位置,让3个女生排,其余位置任排,故有
P(36)P(55)=65454321=14400 种排法


子问题4

【思路】

显然,如果首位是男的,那么接下来怎么摆都行,故有 P(15)P(77)=25200 种摆法
如果首位是女的,故结尾必须是男的,其余任意摆,故有 P(13)P(15)P(66)=10800 种摆法

故总共有 25200+10800=36000 种摆法


例4

集合 S={1,2,,n} 有多少个子集?(空集也算作 S 的子集)

分析

做这道题前首先得明白何为子集?

如集合{1,2,3} {1,3} 即为一个子集, {} 为空集, {1} 为一个子集, {1,2,3} 也为一个子集.

而注意: {1,3} {3,1} 则为同一个子集.

所以此题都为组合数,而非排列.


【第一种思路】

对于一个 r 元子集来说,不同的方案数就有C(rn)

那么显然答案就是

r=0nC(rn)


【第二种思路】

观察题目后可以发现,其实对于 S 集合内的每一个数只存在两种状态:选和不选.

所以总的方案数就是2n


【收获新公式】

于是我们得到一个新公式:

r=0nC(rn)=2n


例5

n 个元素1,2,,n排在一个圆周上,有多少种不同的排法?

分析

首先要分析题意,圆周与普通的排列有什么区别?

上面两个圆其实是同一种排法.

如何去除上面两圆的重复即为此题的关键所在.


【第一种思路】

我们考虑每一种合法的方案会有多少种重复方案?

显然对于一个圆来说,如果不算重复方案,那么方案数就是

P(nn)=n!

把这个圆每往右转动一次都是一种不合法的方案,能转动 N 次,所以方案数就是

n!n=(n1)!


【第二种思路】

考虑把首尾放好后,接下来放的方案数其实就是 P(n2n2)=(n2)!

而经过观察后,发现,首尾只有可能有 n1 种,其他都是重复的,自行思考.

所以总的方案数依然是 (n1)!


【拓展】

如果说把题目改成有 n 个元素串成一项链,有多少种不同的串法?

我们发现,原题其实它是不考虑顺时针和逆时针的,而对于一个项链来说,有逆时针的肯定就有顺时针,所以原题总的方案数的二分之一即为所求.


例6

n个元素排成一列,从中取出 r 个,并要求这r个元素没有两个原来是相邻的,问有多少种选法?

分析

这题非常巧妙,可以运用转化模型的思想来求解.


【第一种思路】

我们设选出的序列元素为:

1<=a1<a2<a3<<ar<=n
由于题目要求每两个元素互不相邻,所以必有
1<=a1<a21<a32<<ar(r1)<=n
那么现在转化模型的思想就有了:我只要保证第一个条件成立,然后把对应的 ai 加上 i1 即可.

所以必须保证第一个条件下 ar<=n(r1) .

故原问题转化为求: C(rnr+1)


【第二种思路】

我们采用隔板法:

考虑现在有 nr+1 个球,之间有 nr 个挡板,在这 nr+1 个球中选择 r 个球与nr个挡板看成原来的 n 个球.

即为一种合法方案.

故方案数依为:C(rnr+1)


【第三种思路】

吃吐法.

吃吐法的意思是先在 n 个元素中吃掉(r1)个元素,然后再选择 r 个元素,这样的方案数就是C(rnr+1)为了保证不相邻,我们在选出的 r 个元素中使前r1元素在后面出一个元素即可.


【拓展】

如果把问题放在环上应该如何求解呢?


分析

注意此题的背景虽然和例2相同,但是意义完全不一样.

圆周是一个不固定的顺序,就是让你如何安排它的顺序使得方案数不同.

但这里其实顺序是固定的,只需考虑首尾的情况.


【第一种解法】

按照分析来做就不会错了.

我们完全可以先利用原题的总方案数:

C(rnr+1)
而首尾相连的方案数是不合法的,故也可以举一反三,推出不合法的方案数是:
C(r2n4(r2)+1)=C(r2nr1)

那么合法的方案数就是

C(rnr+1)C(r2nr1) 
=(nr+1)!r!(n2r+1)!(nr1)!(r2)!(n2r+1)  
=(nr+1)!r!(n2r+1)!r(r1)(nr1)!r!(n2r+1)  
=(nr+1)(nr)(nr1)!r!(n2r+1)!r(r1)(nr1)!r!(n2r+1)
=[(nr+1)(nr)r(r1)](nr1)!r!(n2r+1)!  
=n(n2r+1)(nr1)!r!(n2r+1)!     
=n(nr)!(nr)r!(n2r)! 
=n(nr)C(rnr) 


【第二种解法】

比较抽象的思想.

对于每一种合法的方案,我们将选择的 r 个元素涂黑,然后将圆周拉成一条直线,使得最后一个元素为白,显然这里有nr种不同方案.

那么总合法方案数为 answer .

则不同方案有

(nr)answern
除以 n 是使得这些元素不存在标号重复的问题,即例2中圆周的顺时针重复问题.

那么这样的方案数就是:在每一种n个排成一列的元素中取 r 个,并且这r个互不相邻,且最后一个元素没有选的方案数.

那么同理,我们可以用“吃吐法”来同样算出这样的方案数.

我们先吃掉 r 个元素,在剩余的nr个元素中随便任取 r 个,并且在这r个的元素后都吐一个元素,这样算出的方案数就与上面算的是相同的.

也就是有:

(nr)answern=C(rnr)

所以

answer=C(rnr)nnr


【第三种解法】

与第二种解法类似.

我们考虑现在把涂黑的元素放在一列的最后.

那么由于有 r 个黑元素,所以合法的方案数有

ranswern

同样考虑如何不用 answer 去表示这个方案数.

其实对于这里的每一种合法方案数,都把黑元素放在了最后,那么我们可以假设现在把最后一个黑元素固定,那第一个元素必须是白的,倒数第二个元素也必定是白的,其他就可以任选了,所以方案数就是

C(r1n3(r1)+1)=C(r1nr1)
.

所以有

answer=C(r1nr1)nr=C(rnr)nnr
.


【总结】

有编号与无编号的区别在计数问题中是很重要的

这里的第二和第三种解法其实是一样的,核心在于如何去除重复的方案数,除以 n 那一步虽然看起简单,但却是重中之重.

第一种其实就是常规解法,完全忽视了圆周这一概念,直接利用原题的思想.


例7

在一个网格图中,从点(0,0)走到点 (n,m) 的最短路径有多少条?


【思路】

既然是最短路,那肯定只能往上或往右.

往右能走 n 步,往上能走m步.故总的方案数就是 C(nn+m)=C(mn+m) 种.


【拓展1】

如果有 A(k1,k2) B(k1+1,k2) 这条边不能走方案数又是多少呢?

显然我们可以先算出总的方案数,然后再算必经过 AB 这边的方案数.

相减即为答案.


【拓展2】

n 种不同颜色的球,每种颜色的球至少有m个并且完全相同,问从中选出 m 个组成一组,可以有多少种不同的选法?


分析

这题不同于有重复元素的排列问题,因为一个是排列,一个是组合.

这题也不同于直接的组合问题,因为可以重复选数.

所以这是个组合数升级版的题目.

考虑转化模型!

不难发现,其实对于横坐标为0n1来说,每一个点都有向上 r 的权力.

所以总的方案数就是C(rn+r1)

这里依然是运用了对应的思想.

因为对于每一个最短路径,其都是一种合法的选择方案.


【拓展3】

求不定方程

x1+x2++xn=r
有多少组非负整数解.

分析

显然这 n 个数允许重复,且xi的范围在 0r 之间,所以与原题的思路其实是一样的,同样可以转化为最短路的算法:

C(rn+r1)


【总结】

此类题是计数问题的一大难点.

首先注意到原题拥有是 C(rn+r) ,而后面两者都是 C(rn+r1) ,不要小看了这个 1 ,这往往是解题的关键之处,所谓细节决定成败,这些细节也代表了你对这个问题的熟练程度,细细体会.

解决原题是相对简单的,但后面三个拓展却并不容易想到.

所以我们发现,一个再复杂困难的问题,其也可以通过转化模型,等等技巧来转化为一个个较简单的问题,分而治之,一步一步地求解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值