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

排列组合问题

排列和组合问题,实际上是两种问题,区分它们的原则是是否须要考虑顺序的不一样。排列问题,考虑顺序;组合问题,不考虑顺序。spa

1.排列可重复

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

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

2.排列不可重复

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

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

排列不可重复问题更通常的公式以下,n个球,打r次的排列共有: im

3.组合不可重复

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

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

4.组合可重复

相关文章
相关标签/搜索