組合數學
組合數學
[編輯]組合數學(Combinatorics)研究有限(或可數)對象的計數、構造與結構。它常見於算法、機率論、圖論與計算機科學的證明與分析中:很多看似「算數量」的題,其實是在搭建集合之間的一一對應(雙射)或把集合拆成互不重疊的幾塊。[1]
本書以計數原理為主線:從加法/乘法原理出發,進入排列與組合、二項式定理、容斥原理、鴿巢原理,並進一步接觸遞推與(入門級)生成函數方法。生成函數部分可作為後續更深入學習的入口(例如整數劃分、遞推求解等)。[2]
0. 預備:集合與計數語言
[編輯]- 記 為集合 的元素個數(基數)。
- 若兩個集合間存在雙射,則它們元素個數相同。
- 常見策略:把難數的集合 與好數的集合 建立雙射;或把 分成互不相交的若干塊,再分別計數。[3]
1. 基本計數原理
[編輯]1.1 分類加法原理
[編輯]若 兩兩互不相交,則 。
直覺:把選擇分成互不重疊的幾類,總數等於各類之和。[3]
例 1
[編輯]一個班要選「數學課代表或英語課代表」各 1 名。若數學候選 5 人、英語候選 4 人,且兩職位不能同一人(互斥),則方法數為 。
1.2 分步乘法原理
[編輯]若一個過程分為 步,每一步的選擇數分別為 (且每一步對前面選擇的依賴已被正確計入),則總方法數為 。
例 2
[編輯]用 0–9 組成 4 位數(首位不能為 0)。首位 9 種,其餘 3 位各 10 種,總數為 。
1.3 常見陷阱:互斥、分步與重複計數
[編輯]2. 排列與組合
[編輯]2.1 排列
[編輯]從 個不同元素中取出 個並排成序列,稱為 -排列,常記作 。
例 3
[編輯]6 位不同同學排成一列: 種。
2.2 組合
[編輯]從 個不同元素中取出 個不計順序,稱為 -組合,記作 。
例 4
[編輯]從 10 人中選 3 人當小組:。
2.3 先選再排
[編輯]恆等式:。 解釋:先從 個元素中選出 個(不計順序),再把它們排成序列(計順序)。
3. 二項式係數與二項式定理
[編輯]二項式定理給出 的展開: 。
組合解釋:展開時從 個括號中選出 個取 ,其餘取 ;選擇方式數就是 。這種「用計數解釋恆等式」的思路在組合數學裡非常常見。[1]
推論(帕斯卡恆等式): 。
4. 容斥原理
[編輯]當集合有重疊時,「直接相加會重複計數」。容斥原理提供系統糾正方式。[4]
4.1 兩個集合
[編輯]。
4.2 三個集合
[編輯]。
例 5(整除計數)
[編輯]求 1–100 中能被 2 或 5 整除的數的個數。 設 為被 2 整除,; 為被 5 整除,; 為被 10 整除,。因此 。
5. 鴿巢原理
[編輯]5.1 基本形式
[編輯]若把 個物品放入 個盒子,則至少有一個盒子裡不少於 2 個物品。[5]
5.2 強化形式
[編輯]若把 個物品放入 個盒子,則至少有一個盒子裡不少於 個物品。
例 6
[編輯]任意 13 個人里,必有至少 2 人同月生日(把月份當 12 個盒子)。
例 7
[編輯]任取 6 個整數,必存在兩個數差為 5 的倍數。按除以 5 的餘數分 5 類即可。
6. 遞推與計數(入門)
[編輯]很多計數問題的關鍵是:把大問題拆成規模更小的同類問題。
6.1 鋪磚問題(斐波那契型遞推)
[編輯]問題:用 1×2 的多米諾骨牌鋪滿 2×n 的長方形,有多少種鋪法?設 為鋪法數。
- 若第一列豎放一塊,則剩下 2×(n-1):貢獻 。
- 若第一列用兩塊橫放跨兩列,則剩下 2×(n-2):貢獻 。
因此 , 且 。[1]
7. 生成函數(超入門)
[編輯]生成函數思想:把數列 打包為形式冪級數 。 一個關鍵性質是:乘法對應係數卷積。若 ,則 。[2]
作為補充的權威數學參考庫,NIST 的 DLMF 也提供了多處與「生成函數」相關的條目(尤其在特殊函數章節中)。[6]
例 8(零錢問題)
[編輯]用 1 元、2 元硬幣湊出 元(不計順序)。考察 中 的係數。選擇 (用 枚 2 元)再配 (用 1 元),可得方案數 。
8. 練習(含少量提示)
[編輯]- (乘法原理)從 A 城到 B 城有 3 條路,從 B 城到 C 城有 4 條路。問從 A 到 C 經 B 有多少種走法?
- (排列)8 本不同的書排成一排,其中兩本特定的書必須相鄰,有多少種排法?
- (組合)從 12 人中選 4 人組成委員會,其中必須包含某位同學,方法數是多少?
- (二項式)求 中 的係數,並給出組合解釋。
- (容斥)1–200 中,能被 3 或 8 整除的整數有多少個?
- (鴿巢)任取 10 個整數,證明其中必有兩個數之差是 9 的倍數。
- (遞推)設 為長度為 的 0-1 串且不出現相鄰兩個 1 的個數,寫出遞推並給初值。
提示
[編輯]- 1:。
- 2:把相鄰兩本當作一個「塊」,與其餘 6 本共 7 個對象排列,再乘以塊內 2 種次序。
- 3:固定那位同學,再從剩餘 11 人中選 3 人:。
- 4:係數為 。
- 5:。
- 6:按模 9 的餘數分 9 類。
- 7:按末位分類得到斐波那契型遞推。
進一步閱讀
[編輯]- 課程與講義:MIT OpenCourseWare 6.042J 相關材料。[1]
- 生成函數:Wilf《generatingfunctionology》。[2]
- 組合數學與算法分析基礎:Knuth 等人的《Concrete Mathematics》(作者頁面提供書目信息)。[7]
- ↑ 1.0 1.1 1.2 1.3 Mathematics for Computer Science (6.042J).MIT OpenCourseWare.於2026年1月2日查閱.
- ↑ 2.0 2.1 2.2 Herbert S. Wilf.generatingfunctionology (2nd ed.) PDF.Department of Mathematics, University of Pennsylvania.於2026年1月2日查閱.
- ↑ 3.0 3.1 高中數學/組合計數/分類加法與分步乘法計數原理.Wikibooks.於2026年1月2日查閱.
- ↑ 4.0 4.1 容斥原理.Wikipedia.於2026年1月2日查閱.
- ↑ 鴿巢原理.Wikipedia.於2026年1月2日查閱.
- ↑ NIST Digital Library of Mathematical Functions (DLMF).National Institute of Standards and Technology.於2026年1月2日查閱.
- ↑ Donald E. Knuth.Graham, Knuth, and Patashnik: Concrete Mathematics.Stanford University (faculty page).於2026年1月2日查閱.