數學和演算法之---排列組合
本文大部分內容摘自網路只是本人稍加整理分享,供大家學習交流。
排列的概念
從n個不同的元素中,任取m(m<=n)個元素按照一定的順尋排成一列,叫做從n個不同元素中取出m個元素的一個排列。從n個不同元素中取出m個元素的排列的個數,叫做從n個不同的元素中取出m個元素的排列數,用p(n,m)表示。
排列的公式
p(n,m)=n(n-1)(n-2)……(n-m+1)= n!/(n-m)!(規定0!=1).
組合的概念
從n個不同元素中,任意取出m個元素排成一組,叫做從n個不同元素中取出m個元素的而一個組合;從n個不同元素中取出m個元素的所有組合的個數,叫做從n個不同元素中取出m個元素的組合數,用符號 c(n,m)表示。
組合的公式
c(n,m)=p(n,m)/m!=c(n,n-m))
排列組合的案例
Q1: 有從1到9共計9個號碼球,請問,可以組成多少個三位數?
A1: 123和213是兩個不同的排列數。即對排列順序有要求的,既屬於“排列P”計算範疇。
上問題中,任何一個號碼只能用一次,顯然不會出現988,997之類的組合, 我們可以這麼看,百位數有9種可能,十位數則應該有9-1種可能,個位數則應該只有9-1-1種可能,最終共有9*8*7個三位數。計算公式=P(9,3)=9*8*7,就這麼簡單,其實我們只要牢記公式,就能幫助我們解決生活中的問題。
Q2: 有從1到9共計9個號碼球,請問,如果三個一組,代表“三國聯盟”,可以組合成多少個“三國聯盟”?
A2: 213組合和312組合,代表同一個組合,只要有三個號碼球在一起即可。即不要求順序的,這便是組合。正如A2中說的,213和312 所要表達的結果是一樣的,都是由“1,2 和 3 ”這3 個數組合的。那麼,我們就要考慮,怎麼排除這種情況。
就拿結果是有“1、2、3”這個來做例子分析。
在結果是“1,2,3”這個情況中,考慮按順序拿出來的情況是:第一次可以在3個數(1,2 或3)中選1個,第二次可以在剩下的2個數中選1個。。。也就是說他們的按順序出現的可能有:3*2*1 種。但是隻看結果,不看順序,那麼就重複了3*2*1次。
同理,你可以想到,每一個結果中,他們按順序出現的種數都是6種。也就是說,每一種結果都重複了3*2*1次,
所以要除以3*2*1。
所以A2最終結果為:C(3,9 )= C(9,3)/C(3,9) = 9*8*7/3*2*1=84