排列组合问题探索

这里,主要是对经典的排列组合问题进行了总结,并归纳了解决这些问题的方法。解决这一类问题非常重要的一点是:要会灵活变通,有些新问题貌似没见过,但其实就是换了个马甲

一、优限法

优先法,优先考虑对位置有要求的元素,再考虑余下的元素。

【例】
A、B、C、D、E五个人排队,要求A必须站在队首或队尾,问多少种排列方式?

思路:
先安排A,有A22A_{2}^{2}种情况,剩下的4个元素有A44A_{4}^{4}中排列方式,由分步原理,共有
A21A44=48A_{2}^{1}A_{4}^{4}=48
种情况。

二、捆绑法

捆绑法就是把要求相邻的元素放在一起,当成一个大元素考虑,相当于在原来的基础上消灭了相邻的元素,新加了一个元素,同时注意:大元素内部可能也要考虑顺序,考题目要求。

【例】
A、B、C、D、E五个人排队,要求A和E必须相邻,问有多少种排列方式?

思路:
A和E相邻,我们可以把A和E捆绑在一起,当成一个元素,注意:A和E是不同的个体,也有顺序之分,有A22A_{2}^{2}种情况,然后对新的组成进行排列,有A44A_{4}^{4}中情况,由分步原理,共有,
A22A44=48A_{2}^{2}A_{4}^{4}=48
种情况。

三、插空法

这种情况和第二种正好相反,要求某几个元素不能相邻。我们可以先把其余的元素进行排列组合,然后再把不能相邻的元素插到排列好的元素之间的空隙之中。

【例】
A、B、C、D、E五个人排队,要求A和B不能站在一起,问有多少种排列方式?

思路:
先对没有要求的元素进行排队,有A33A_{3}^{3}种情况,排列好的元素之间形成了A42A_{4}^{2}种情况,所以,共有,
A33A42=72A_{3}^{3}A_{4}^{2}=72
种情况。

四、间接法

其实就是在找互斥(对立)事件,原问题看起来可能很复杂,要讨论的情况很多。但是其互斥事件相对简单简单一些。然后用总的可能情况减去互斥的情况。

【例】
A、B、C、D、E五个人排队,要求A和B必须有一个排在前两排的位置,问有多少种排列方式?

思路:
如果按照题目要求直接来做的话,需要讨论A排在前两排,或B排在前两排,或A和B同时排在前两排三种情况,比较繁琐。这里我们可以考虑其对立事件,即A和B都没有排在前两排的情况。那么,我们可以先对没有约束的元素进行排序,有A33A_{3}^{3}种情况,然后对A排序,有A21A_{2}^{1}种组合,对B排序,有A31A_{3}^{1}种组合。不考虑约束,共有A55A_{5}^{5}种组合,所以,满足条件的排列有,
A55A33A21A31=12036=84A_{5}^{5}-A_{3}^{3}A_{2}^{1}A_{3}^{1}=120-36=84
种情况。

五、实战

拿了一个网易的面试题练练手,看看大部分的题不是那么中规中矩的

【例】

从数字集合{1,2,3,4,… ,20}中选出4个数字的子集,如果不允许两个相连的数字出现在同一集合中,那么能够形成多少个这种子集?

思路:
看起来好像和前面的方法没有关联,其实是有的。从20个数字中挑选出4个不相邻的数字,其实和这个问题是一样的:“将4本书添加到16本书里,有多少种添加方式?”,16本书,共产生17个间隙,选择4个间隙,共有
C174=2380C_{17}^{4}=2380
种情况。
不是A174A_{17}^{4}是因为集合内的元素没有先后顺序。

参考资料:
1.网易数据分析面试题:
https://www.nowcoder.com/questionTerminal/dd21a5b395a143ea8d732bfc98ba41bc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章