数据结构与算法 —— 基础一(排列组合)

排列组合问题

排列和组合问题,其实是两种问题,区分它们的原则是是否需要考虑顺序的不同。排列问题,考虑顺序;组合问题,不考虑顺序。

1.排列可重复

那么,何为“可重复”呢?暂且不考虑排列组合,先解释可重复。举个例子,冰淇淋有3种口味可以选择,我可以选择3种相同口味,也可以选择不同口味,每次选择即可相同也可不相同。再举个例子抛硬币3次,很显然,可能会出现3次都是正面,硬币出现正反面是可重复的。典型的问题如,开锁问题,彩票问题,都是排列可重复问题。

排列可重复问题公式如下,每次nn种选择,选择rr次的排列共有:n^r
这很好理解,一次有n种选择,第二次有n∗n种选择,……,第r次有n^r种选择。

2.排列不可重复

不可重复也很好理解了。例如,打桌球问题,一共15个球,打进所有球有多少种打法。这种情况下,不可能一个球重复打进,第一次击球有15种可能,第二次只有14种,……,最后一次就只有一个球了,只有一种可能。

这个打桌球问题,可以这样理解。首先,共有15个球,全部打完,共有多少种排列?显然,15∗14∗...∗2∗1=15! 。然后考虑,不全部打完呢?打3次有多少种排列,显然15∗14∗13,为了公式的整齐可以写成

排列不可重复问题更一般的公式如下,n个球,打r次的排列共有: 

3.组合不可重复

组合可重复问题放在最后,先看组合不可重复。先看例子,共有红黄蓝绿黑5种颜色的球,随机取3次有几种颜色组合。{红、绿、黄}和{黄、绿、红}虽然顺序不同,但是相同的组合,即只算一种情况。同时,不可能出现{红、红、黄},即这是一个不可重复问题。

首先,显然红黄绿是1种组合,我们来看红黄绿有多少种排列。

4.组合可重复

猜你喜欢

转载自www.cnblogs.com/mylearning-log/p/10911507.html