1. 程式人生 > >排列組合常見解題方法

排列組合常見解題方法

組合 一起 博客園 case n-1 元素 www 反向 https

由 27 October in ss 中的一道題闡發:

拓展:把 \(n\) 個相同物品放入 \(m\) 個籃子, 若

(1) 籃子可以為空, 籃子不同:共有 \(C_{n+m-1}^{m-1}\) 種方案.

(2) 籃子不可以為空, 籃子不同:共有 \(C_{n-1}^{m-1}\) 種方案. (擋板法)

(3) 籃子可以為空, 籃子相同:方案遞推式為 \(f(n,m)=f(n-1,m)+f(n,m-1)\).

(4) 籃子不可以為空, 籃子相同:方案算式為 \(f'(n,m)=f(n-m,m)\).

推廣:記 \(Q(n,m)\) 為把自然數 \(n\) 拆分為 \(m\) 個無序的自然數的方案數.

\[\displaystyle Q(n,m)=\begin{cases} 1,& m=1\text{ or } n=1,\\ Q(n,n),& m>n,\\ 1+Q(n,n-1),& m=n,\\ Q(n,m-1)+Q(n-m,m),& m<n. \end{cases} \]



排列組合題的常見解題方法:捆綁法、插空法、分組法、擋板法、優限法、倍縮法、間接法.


捆綁法——解相鄰問題

例1:(1) 求 7 的排列中偶數必相鄰的排列種數. (2) 求 7 的排列中偶數互不相鄰的排列種數.

對於 (1), 因為偶數必相鄰, 所以把偶數 “捆綁” 為一個整體, 與 1, 3, 5, 7 排序, 有 \(A_5^5\)

種排法;偶數 “捆綁” 的內部, 有 \(A_3^3\) 種排法. 根據乘法原理, 共有 \(A_5^5\cdot A_3^3=720\) 種排法.

對於 (2), 先對奇數排序, 共 \(A_4^4\) 種排法;將 2, 4, 6 插入 1, 3, 5, 7 之間, 有 5 個間隙, 有 \(A_5^3\) 種 “插入” 方法. 根據乘法原理, 共有 \(A_4^4\cdot A_5^3=1440\) 種排法.

\(n\) 個不同元素必須相鄰, 有 \(A_n^n\) 種 “捆綁” 方法.

\(n\) 個不同元素互不相鄰, “插入” \(m\) 個間隙中, 有 \(A_m^n\) 種 “插入” 方法.

插空法——解不相鄰問題

例2:6個不同物品放在九個相同容器裏, 每個容器只能放入最多一個物品, 每個空容器兩邊都有物品, 求方案數.

6 個不同物品有 \(A_6^6\) 種不同的順序;把 3 個相同空容器 “插入” 到 6 個人當中的 5 個 “空隙”, 有 \(C_5^3\) 種方法. 根據乘法原理, 共有 \(A_6^6\cdot C_5^3=7200\) 種方案.

\(n\) 個相同元素互不相鄰, “插入” \(m\) 個間隙中, 有 \(C_m^n\) 種 “插入” 方法.

分組法——解不同元素分組問題

例3:求將 1, 2, 3, 4, 5, 6 分為 3 組的分組方法.

分類討論:

第一類 (1-1-4) 分法(整體等分, 局部不等分):(法1) 6 取 4 “捆綁”, 得 \(C_6^4=15\). (法2) 先取 1 個為 \(C_6^1\);再取 1 個為 \(C_5^1\), 兩次選取無先後之分, 所以再除以 \(A_2^2\);剩下 4 個自成一組. 得 \(\displaystyle \frac{C_6^1\cdot C_5^1}{A_2^2}=15\).

第二類 (1-2-3) 分法(整體和局部均不等分):6 取 1 為 \(C_6^1\);5 取 2 為 \(C_5^2\);余下自成一組. 得 \(C_6^1\cdot C_5^2=60\).

第三類 (2-2-2) 分法(整體和局部均等分):6 取 2 為 \(C_6^2\);4 取 2 為 \(C_4^2\), 兩次選取無先後之分, 所以再除以 \(A_2^2\);剩下 2 個元素自成一組. 得 \(\displaystyle \frac{C_6^2\cdot C_4^2}{A_2^2}=15\).

根據加法原理, 共有 \(15+60+15=90\) 種不同的分法.

若幹不同元素等份為 \(n\) 組, 要對每一個組求組合數, 乘積再除以 \(A_n^n\).

擋板法——解相同元素分組問題

例4:將 8 個相同物品放入 3 個不同容器, 每個容器至少放一個物品, 求方案數.

將 8 個物品放在一起, 插入 7 個 “擋板”:〇|〇|〇|〇|〇|〇|〇|〇. 任意保留 2 個 “擋板” 即可, 為 \(C_7^2=21\).

\(n\) 個相同元素分為 \(m\) 組, 有 \(C_{n-1}^{m-1}\) 種 “插擋板” 方法.

優限法——解含特殊條件問題

例5:7 個元素排列, 其中兩個元素 A, B 特殊, (1) 求 A, B 只能放在兩端的排法. (2) 求 A, B 不能放在兩端的排法.

對於 (1), A, B 放在兩端有 \(A_2^2\) 種;余下 5 個元素有 \(A_5^5\) 種. 根據加法原理, 有 \(A_2^2\cdot A_5^5=240\) 種排列方法.

對於 (2), 除去 A, B 的其余 5 個元素放在兩端有 \(A_5^2\) 種;余下 5 個元素(含 A, B)有 \(A_5^5\) 種. 根據加法原理, 有 \(A_5^2\cdot A_5^5=2400\) 種排列方法.

對於含特殊條件的問題, 優先處理特殊條件, 稱為優限法.

倍縮法——解方案有重問題

先按照一個方法, 計算出來的排列數或組合數, 是每一種排列或組合都重復了相同次數統計出來的, 這時只需把所計算出來的數字除以重復的次數, 即可得到要求的排列數或組合數, 這種解析排列組合應用題的方法即為倍縮法.

間接法——解正向求解不顯然問題

對於正向求解不顯然的問題, 可以考慮反向求解, 用總方案扣除不符合要求的方案. 註意不要多扣、不要少扣.




參考文獻:

  1. 李蘇勇. 用捆綁、插空、分組、擋板法解排列組合題[J]. 呂梁教育學院學報, 2008, 25(4): 67-68.
  2. Yogurshinem. m個蘋果放入n個籃子. 博客園. https://www.cnblogs.com/Yogurshine/p/3829477.html

排列組合常見解題方法