電腦演算法基礎 ——數學(排列組合函數)

來源:互聯網
上載者:User

標籤:

一 排列

1.從n個元素中取r個元素排列的全體數目

 Pnr=P(n,r)=n(n-1)(n-2)...(n-r+1)=n!/(n-r)!                  :例:n個球取r個放入r個不同盒子,每個盒子一個球,多少种放法

2. n個元素的全排列

 Pnn=P(n,n)=n!

3.例:隨機選n(n<365)個人,求其中至少有兩人生日相同的機率。

  n個人的生日的序列數:365n

  n個人生日均不相同的機率:P(365,n)

 故:1-P(365,n)/365n

4.圓排列

 從n個元素中取r個元素沿一圓周排列

 Qnr = Pnr /r  (取r個元素作排列的結果與圓排列的結果比較,每個排列重複了r次)

同理:Qnn = n!/n =(n-1)!

 

二 組合

1. Cnr :從n個元素中取r個元素排列而不考慮順序;

    如:n個球取r個放入r個盒子,r個盒子是相同的。

若在每種組合結果的基礎對盒子排列,便得到n取r的排列,則:

 Cnr r! = Pnr  故  Cnr = Pnr /r! = n!/(n-r)!r!

2 分組

 有a1,a2...a8八位成員,兩兩配對,分成4組,試求方案N

方法一:依次選擇: a1選擇同樣有7種選擇,餘下6人中一人,選擇同樣有5種選擇,餘下4個,其中一個選擇同樣有3種可能; N=7*5*3

方法二:全排列與分組(組內,組間):

   將8個成員全排列,共8!種可能;若分成4組,{12}{34}{56}{78},若在組內位置互換,對於選擇同樣沒有影響,則全排列中選擇同樣有重複,重複數:2n

   同時,4組之間的排列也不影響同樣關係,故全排列中對同樣關係也有重複,重複數:4!

  故得 8!/(2n*4!)

方法三:先分組,再組內

    8個人分成4組,第1組有C82種選擇,第2組有C62種選擇,同理第3組有C42種選擇; 且組的順序無關

    N= C82* C62*C42 * C22 /4! =105

3 允許重複的組合

定理1:在n個不同元素中取r個進行組合,允許重複(r個元素中元素是可重複的),組合數:Cn+r-1r

定理2:將r個無區別的球,放入n個有標誌的盒子,每個盒子中可多於一個,則共有 Cn+r-1r 種方案

例:(x+y+z)4 共有多少項:

  相當於 將4個球,放入3個盒子裡,而且每個盒子中的數目不限。如 X4  可理解為將4個球都放入盒子X中。

 N=C(n+r-1,r)=C(3+4-1,4)=C(6,4)=15

4 不相鄰的組合

 指:從序列A={1,2,....n}中取r個,其中不存在,i,i+1兩個相鄰數同時出現於一個組合中的組合。

定理: 從序列A={1,2,....n}中取r個作不相鄰組合,其中組合數為:Cn-r-1r 

 

三 母函數-冪級數

定義:設 a0,a1,a2...an是一個數列,定義它的母函數為冪級數                            ——————————解決元素重複的組合問題

 fa(x)=(1+x)a =C(a,0)X0 +C(a,1)X1 +C(a,2)X2 +C(a,3)X3 +.....+C(a,n)Xn+

母函數與其他母函數存在的關係式:

 A(x)= 1/(1-x) = 1+X+X2+X3 +.....+Xn+

 B(x)=1/(1-x)2 =A(x)/(1-x) = 1+2X+3X2+4X3 +.....+nXn-1

C(x)=1/(1-x)3 =B(x)/(1-x) = 1+3X+6X2+10X3 +.....+

 


應用:

例1:紅球兩個,白球,黃球各一個,試問有多少種不同的組合數

利用: fa(x)=(1+x)a =C(a,0)X0 +C(a,1)X1 +C(a,2)X2 +C(a,3)X3 +.....+C(a,n)Xn+ 其中每一項 指數表示選擇數,係數表示該該選擇的方案數。

  令r個球組合數為Cr,則 C0 , C1 , C2 , C3 , C4 的母函數:

  G(x)=( 1+x+x2 )(1+x)(1+x)=1+3x+4x2+3x3+x4

 1+x+x2  表示第紅球選0個,選一個,選兩個

 共有:1+3+4+3+1=12種不同組合數。

 由4x2 表示選2個球的組合數為4;3x表示選1個球的組合數

例2 :若有1g,2g,3g,4g的砝碼各一枚,問能稱出幾種可能的重量。 

利用: fa(x)=(1+x)a =C(a,0)X0 +C(a,1)X1 +C(a,2)X2 +C(a,3)X3 +.....+C(a,n)Xn+ 其中每一項 指數表示重量,係數表示該重量的方案數。

 母函數為:G(x)=(1+x)( 1+x+x2 )( 1+x+x2+x3 )( 1+x+x2+x3 +x4  ) 

 將係數相加,可得答案。

例3: 若有1g的砝碼3枚,2g的砝碼4枚,4g的砝碼2枚,問能稱出哪些重量,各有幾種方案。

G(x)=(1+x+x2+x3  )( 1+x2 +x4+x6+x8  ) (1+x4+x8)

 

四 母函數—指數型

 

定義:設 a0,a1,a2...an是一個數列,定義它的母函數為指數型母函數:                                 —— 解決元素重複的排列問題

 fa(x)=(1+x)a =C(a,0)X0 +C(a,1)X1/1! +C(a,2)X2/2! +C(a,3)X3/3! +.....+C(a,n)Xn/n!+

例1:

8個元素,a1重複3次,a2重複2次,a3重複3次,從中取r個組合,其組合數的母函數:

G(x)=(1+x+x2+x3  )( 1+x2 )(1+x+x2+x3  )=1+3x+6x2+9x3+10x4+9x5+6x6+3x7+x8

可得到,若取4個元素進行組合有10種方案。  若需要取4個元素進行排列呢:問題就轉化為從8個元素取4個進行排列,其排列數應是每種組合的排列。

 如:x1x33表示1個a1,3個a3; 那麼它對應的排列數為 4!/1!3! ; 

由: 

Cnr = Pnr /r! 

Ge(x)=(1+x/1!+x2/2!+x3/3!  )( 1+x/1!+x2/2! )(1+x/1!+x2/2!+x3/3!  )=

         1+ 3X/1! + 9x2/2! + 28x3/3! + 70x4/4! + 170x5/5! + 350x6/6! + 560x7/7!+ 560x8/8! 

這裡取K的排列數應該是K!.故取4個的排列數應是:70; 

例: a1,a2...a7為7個有區別的球,將它們放入4個有標誌的盒子,要求第1,2兩個盒子必須含偶數個數,第3個盒子含有奇數個數。 有多少放法  

   可理解為從1,2,3,4這4個數字中取7個作允許重複的排列————元素重複的排列

 

例:求1,3,5,7,9 這5個數字組成的n位元的個數,要求其中3和7出現的次數為偶數,其他數字出現的次數無限制。

 

 

 

 

 

電腦演算法基礎 ——數學(排列組合函數)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.