1. 程式人生 > >組合數學第一章複習

組合數學第一章複習

從廣義上講組合數學就是離散數學。

1.1 基本計數法則

加法法則

若 |A| = m , |B| = n , A B = , 則 |A

B| = m + n 。

乘法法則

若 |A| = m , |B| = n , AxB = {(a,b) | a A,b B}, 則 |A x B| = m · n 。

【例】求小於10000的含1的正整數的個數。

  • 小於10000的不含1的正整數可看做4位數,但0000除外
  • 小於10000的不含1的正整數的個數有 9 4 1 = 6560
  • 小於10000的正整數的個數有
" role="presentation"> 10 4 1 = 9999
  • 小於10000的含1的正整數的個數:9999-6560=3439
  • 【例】求小於10000的含0的正整數的個數

    • 不含0的1位數有9個,2位數有 9 2 個,3位數有 9 3 個,4位數有 9 4 個 ,共7380個
    • 小於10000的含0的正整數的個數為:9999-7380=2619

    1.2 一一對應

    【例】n個人參加單淘汰賽,最後產生冠軍的過程,需要多少場比賽?

    • 比賽的臺數和每一場淘汰一名選手一一對應
    • 答案:n-1
      【例】求 n 2 個人站成n排的方案數

    • 站成n排和站成1排一一對應

    • 答案: n 2 !

    【定理】帶n個有標號1,2,…,n的頂點的樹的數目等於 n n 2 (n>=2)
    這裡寫圖片描述

    1.3 排列與組合

    排列的定義

    設A={a1,a2,…,an}是n個不同的元素的集合,任取A中r個元素按順序排成一列,稱為從A中取r個的一個排列,其數目記為P(n,r) ,r滿足0≤r≤n。
    排列可以看作n個不同的元素取r個放進r個不同的盒子的放法.

    • 從n個不同的球中取一個球放在第一個盒子中,
    • 從餘下的n-1個球中取一個球放在第二個盒子中,
    • …………………………………
    • 從餘下的n-(r-1)個球中取一個放在第r個盒子中

    根據乘法法則:
    P(n,r)=n(n-1)…(n-r+1)=n!/(n-r)!
    全排列:P(n,n)=n(n-1)…2×1=n!

    組合的定義

    當從n個不同元素中取出r個而不考慮它的順序時,稱為從n中取r個的組合,其數目記為C(n,r)。
    因為組合不考慮順序,所以組合數會比排列數少很多。
    C(n,r)=P(n,r)/r! =n!/[r!(n-r)!]
    C(n,r)=C(n,n-r)

    圓周排列的定義

    在排列中,如果我們不橫排而是將各元素排列在一個圓周上,那麼我們稱這種排列方式為圓周排列。規定相對位置不變算同一個圓周排列。將從n中取r個作圓排列的排列數記作Q(n,r)。
    在排列中1234,2341,3412,4123為四個不同的排列,而在圓周排列中這些排列是一個。
    從n中取r個作排列,與圓排列相比,重複了r倍
    Q(n,r)=P(n,r)/r
    Q(n,r)=P(n,r)/r=n!/r(n-r)!
    Q(n,n)=P(n,n)/n=n!/n=(n-1)!
    這裡寫圖片描述
    【例】5對夫婦出席一宴會,圍一圓桌而坐,試問有幾種不同的方案?若要求每對夫妻相鄰又有多少種方案?

    • (1)Q(10,10)
    • (2)Q(5,5)* 2 5

    1.4 多重集的排列

    設S是一個多重集,有K個不同型別的元素,各元素的重複分別為n1,n2,…,nk,n=n1+n2+…+nk,則多重集S的全排列數為: n ! n 1 ! n 2 ! . . . n k !

    證明:由 C n n 1 C n n 1 n 2 C n n 1 n 2 n 3 . . . C n n 1 n 2 . . . n k 1 n k 化簡而得。

    【例】求 10 40 20 30 的公因數的數目。

    • 10 40 = 2 40 5 40
    • 20 30 = 2 60 5 30
    • 公因式形如 2 i 5 j 0 i 40 , 0 j 30
    • 公因式數目41X31

    【例】有n個不同的整數,從中取出兩組來,要求第1組的最小數大於另一組的最大數,求滿足條件的所有取法的數量。

    • 只要從n個數中取出一組m個數(設m=a+b, 2 m n ),此時方案數為C(n,m)
    • 將m個數從大到小取a個( a 1 )作為第一組,剩餘的(剩下b個, b 1 )為第二組。從m個數中取第一組數共有m-1中取法。
    • 答案: m = 2 n ( m 1 ) C ( n , m )

    1.5 排列的生成演算法

    對於給定的字符集,用有效的方法將所有可能的排列無重複無遺漏地枚舉出來。

    序數法

    【思想】n個元素的n!個全排列與n!個數一一對應。
    【定理】令 n 0 0 m n ! 1 ,則m可以唯一地表示為:
    m = a n 1 ( n 1 ) ! + a n 2 ( n 2 ) ! + + a 1 ( 1 ) !
    其中: