排列組合問題探索

這裏,主要是對經典的排列組合問題進行了總結,並歸納瞭解決這些問題的方法。解決這一類問題非常重要的一點是:要會靈活變通,有些新問題貌似沒見過,但其實就是換了個馬甲

一、優限法

優先法,優先考慮對位置有要求的元素,再考慮餘下的元素。

【例】
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

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