组合数学 (英語:Combinatorics ),在总體上是一门研究可數或离散对象的科学。它可分为廣義上的和狭義上的兩種層面,若是前者 (廣義的组合数学) ,其相当于离散数学 ,而后者 (狭义的组合数学 ) 則是组合计数 、图论 、代数结构 、数理逻辑 等的总称,但这只是不同学者在稱謂上的区别。而随着计算机科学 日益发展,组合数学的重要性也日渐凸显,因为计算机科学的核心内容是使用算法 处理离散数据 。
狭义的组合数学主要研究满足一定条件的组态(也称组合模型)的存在、计数以及构造等方面的问题。组合数学的主要内容有组合计数 、组合设计 (Combinatorial design )、组合矩阵 (Combinatorial matrix theory )、组合最佳化 (最佳組合 )等。
歷史
An example of change ringing (with six bells), one of the earliest nontrivial results in graph theory .
最基本的組合數學的思想和枚舉 的方法在古老時代就已經出現。西元前6世紀的古印度 外科醫生 妙聞 指出可以由6種相異味道組合出63種相異結果(每種味道都可以選擇或不選擇,但不能都不選擇,因此有26 −1=63種組合);古羅馬時期 ,希臘史學家普魯塔克 與克律西波斯 、喜帕恰斯 討論了後來顯示與Schröder–Hipparchus數 有關的枚舉問題[ 1] [ 2] ;西元前3世紀的阿基米德 在其數學文章Ostomachion 中講述拼接拼圖的智力遊戲(tiling puzzle)。
中世紀 時,組合數學持續發展(主要是歐洲 外的文明)。西元850年的印度 數學家Mahāvīra 提供了關於排列 數與組合 的公式[ 3] [ 4] ,甚至可能早在6世紀的印度數學家就對這些公式熟悉[ 5] 。西元1140年哲學家 與天文學家 阿伯拉罕·伊本·埃茲拉 確認了二項式係數的對稱性,而二項式係數公式則是由猶太人 數學家 吉尔松尼德 在西元1321年得到[ 6] 。楊輝三角形 最早可追溯至10世紀的數學論文,在中國 則首現於13世紀南宋 楊輝 《詳解九章算法 》。在英格蘭 則出現與哈密頓迴路 相關的例子[ 7] 。
文藝復興時期 ,與其他數學或科學 領域一樣,組合數學再現生機。帕斯卡 、牛頓 、雅各布·白努利 、歐拉 等人的研究為此新興領域打下基礎。在更近代,西爾維斯特 和馬克斯·馬奧尼 也在組合計數 和代數組合學 有貢獻。数学家也對四色問題 等圖論 有極大興趣。
在20世紀下半葉,組合數學成長相當迅速,甚至出現數十種新的期刊和會議[ 8] ,這種成長某程度上是由與其他領域的連結與應用所帶動,如代數 、機率論 、泛函分析 和數論 。
组合数学中的著名问题
計算一些物品在特定條件下分組的方法數目。這些是關於排列 、組合 和整數分拆 。
地图着色问题 :為地图填色,每區用一色。如果要邻區颜色相异,是否只需四色?這是圖論 題。
船夫过河问题 :船夫要把一匹狼、一只羊和一棵菜运过河。只要船夫不在场,羊就会吃白菜、狼就会吃羊,但船每次只能运送一种东西。怎样把所有东西运过河?這是線性規劃 題。
中国邮差问题 :由中华民国组合数学家管梅谷 教授提出。邮差要穿过城市的每一条路至少一次,怎样行走走过的路程最短?这不是NP完全 问题,存在多项式复杂度算法:先求出度为奇数的点,用匹配算法算出这些点间的连接方式,然后再用欧拉路径 算法求解。也是圖論 題。
任务分配问题 (也称分配问题 ):有一些员工要完成一些任务。各员工完成不同任务用的时间都不同。每个员工只分配一项任务。每项任务只分给一个员工。怎样分配员工与任务以使所花费的时间最少?也是線性規劃 題。
如何構造幻方 : 幻方 為一方陣,填入不重複之自然數 ,並使其中每一縱列、橫列、對角線內數字之和皆相同。
數獨 :遊戲一般由9個3×3個的九宫格組成。每一列的數字均須包含 1~9,不能缺少,也不能重複。每一宮(粗黑線圍起來的區域,通常是 3x3 的九宮格)的數字均須包含 1~9,不能缺少,也不能重複。參見Mathematics_of_Sudoku
排列
从
n
{\displaystyle n}
个元素取出
k
{\displaystyle k}
个元素,
k
{\displaystyle k}
个元素的排列數量為:
P
k
n
=
n
!
(
n
−
k
)
!
{\displaystyle P_{k}^{n}={\frac {n!}{(n-k)!}}}
以賽馬 為例,有8匹马参赛,玩家需在彩票上填入前三匹胜出的马匹号码,從8匹馬取出3匹來排前3名,排列數量為:
P
3
8
=
8
!
(
8
−
3
)
!
=
8
×
7
×
6
=
336
{\displaystyle P_{3}^{8}={\frac {8!}{(8-3)!}}=8\times 7\times 6=336}
因为有336种排列,因此玩家在一次填入中中奖的概率是:
P
=
1
336
=
0.00298
{\displaystyle P={\frac {1}{336}}=0.00298}
(假設每匹馬贏的機會相等)
不過,中國大陸的教科書則是把從n取k的情況記作
P
n
k
{\displaystyle P_{n}^{k}}
或
A
n
k
{\displaystyle A_{n}^{k}}
(A代表Arrangement,即排列[ 9] )。
上例是在取出元素不重複出現的狀況建立。
從
n
{\displaystyle n}
个元素取出
k
{\displaystyle k}
个元素,
k
{\displaystyle k}
个元素可以重复出现,這排列數量為:
U
k
n
=
n
k
{\displaystyle U_{k}^{n}=n^{k}}
[ 10]
以四星彩 為例,10個數取4個,因可能重複所以排列數量為:
U
4
10
=
10
4
=
10000
{\displaystyle U_{4}^{10}=10^{4}=10000}
这时的一次性添入中奖的概率就是:
P
=
1
10000
=
0.0001
{\displaystyle P={\frac {1}{10000}}=0.0001}
组合
和排列不同的是,组合不考虑取出元素的顺序。
从
n
{\displaystyle n}
个元素取出
k
{\displaystyle k}
个,
k
{\displaystyle k}
个元素的组合數量为:
C
k
n
=
(
n
k
)
=
P
k
n
k
!
=
n
!
k
!
(
n
−
k
)
!
{\displaystyle C_{k}^{n}={n \choose k}={\frac {P_{k}^{n}}{k!}}={\frac {n!}{k!(n-k)!}}}
中國大陸的教科書則是把從
n
{\displaystyle n}
取
k
{\displaystyle k}
的情況記作
C
n
k
{\displaystyle C_{n}^{k}}
[ 11] 。
以香港六合彩 為例,六合彩49顆球選6顆的组合數量为:
C
6
49
=
(
49
6
)
=
49
!
6
!
43
!
=
13983816
{\displaystyle C_{6}^{49}={49 \choose 6}={\frac {49!}{6!43!}}=13983816}
如同排列,上面的例子是建立在取出元素不重複出現狀況。
从
n
{\displaystyle n}
个元素取出
k
{\displaystyle k}
个元素,
k
{\displaystyle k}
個元素可以重複出現,组合數量为:
H
k
n
=
C
k
n
+
k
−
1
{\displaystyle H_{k}^{n}=C_{k}^{n+k-1}}
以取色球為例,每種顏色的球有無限多顆,從8種色球取出5顆球,這組合數量為:
H
5
8
=
C
5
8
+
5
−
1
=
C
5
12
=
12
!
5
!
7
!
=
792
{\displaystyle H_{5}^{8}=C_{5}^{8+5-1}=C_{5}^{12}={\frac {12!}{5!7!}}=792}
因為組合數量公式特性,重複組合轉換成組合有另一種公式為:
H
k
n
=
C
k
n
+
k
−
1
=
(
n
+
k
−
1
)
!
k
!
(
n
−
1
)
!
=
C
n
−
1
n
+
k
−
1
{\displaystyle H_{k}^{n}=C_{k}^{n+k-1}={\frac {(n+k-1)!}{k!(n-1)!}}=C_{n-1}^{n+k-1}}
另外
H
k
n
{\displaystyle H_{k}^{n}}
也可以記為
F
k
n
{\displaystyle F_{k}^{n}}
[ 12]
F
k
n
=
H
k
n
{\displaystyle F_{k}^{n}=H_{k}^{n}}
总结
n
{\displaystyle n}
中取
k
{\displaystyle k}
直線排列 (考慮順序)
环状排列
组合 (不考慮順序)
不重复出现 (不放回去)
P
k
n
=
n
!
(
n
−
k
)
!
{\displaystyle P_{k}^{n}={\frac {n!}{(n-k)!}}}
(OEIS 數列A008279 )
n
!
k
⋅
(
n
−
k
)
!
{\displaystyle {\frac {n!}{k\cdot (n-k)!}}}
(OEIS 數列A111492 )
C
k
n
=
n
!
k
!
⋅
(
n
−
k
)
!
{\displaystyle C_{k}^{n}={\frac {n!}{k!\cdot (n-k)!}}}
(OEIS 數列A007318 )
可重复出现 (再放回去)
U
k
n
=
n
k
{\displaystyle U_{k}^{n}=n^{k}}
(OEIS 數列A004248 )
∑
r
|
k
(
r
⋅
φ
(
r
)
⋅
n
k
r
)
k
{\displaystyle {\frac {\sum _{r|k}(r\cdot \varphi (r)\cdot n^{\frac {k}{r}})}{k}}}
(OEIS 數列A075195 )
H
k
n
=
(
n
+
k
−
1
)
!
k
!
⋅
(
n
−
1
)
!
{\displaystyle H_{k}^{n}={\frac {(n+k-1)!}{k!\cdot (n-1)!}}}
(OEIS 數列A097805 )
参见
參考文獻
^ Stanley, Richard P. ; "Hipparchus, Plutarch, Schröder, and Hough", American Mathematical Monthly 104 (1997), no. 4, 344–350.
^ Habsieger, Laurent; Kazarian, Maxim; and Lando, Sergei; "On the Second Number of Plutarch ", American Mathematical Monthly 105 (1998), no. 5, 446.
^ 約翰·J·奧康納; 埃德蒙·F·羅伯遜 , Mahavira , MacTutor数学史档案 (英语)
^ Puttaswamy, Tumkur K., The Mathematical Accomplishments of Ancient Indian Mathematicians, Selin, Helaine (编), Mathematics Across Cultures: The History of Non-Western Mathematics , Netherlands: Kluwer Academic Publishers: 417, 2000 [2019-07-21 ] , ISBN 978-1-4020-0260-1 , (原始内容 存档于2016-11-27)
^ Biggs, Norman L. The Roots of Combinatorics. Historia Mathematica. 1979, 6 (2): 109–136. doi:10.1016/0315-0860(79)90074-0 .
^ Maistrov, L.E., Probability Theory: A Historical Sketch , Academic Press: 35, 1974 [2019-07-21 ] , ISBN 978-1-4832-1863-2 , (原始内容 存档于2021-04-16) . (Translation from 1967 Russian ed.)
^
White, Arthur T.; "Ringing the Cosets", American Mathematical Monthly , 94 (1987), no. 8, 721–746; White, Arthur T.; "Fabian Stedman: The First Group Theorist?", American Mathematical Monthly , 103 (1996), no. 9, 771–778.
^ See Journals in Combinatorics and Graph Theory (页面存档备份 ,存于互联网档案馆 )
^ 普通高中课程标准实验教科书 数学 选修2-3 B版. 人民教育出版社. : 10. ISBN 9787107187544 .
^ 組合數學 ─算法與分析─. 九章出版社. : 29. OCLC:44527392
^ 普通高中课程标准实验教科书 数学 选修2-3 B版. 人民教育出版社. : 16. ISBN 9787107187544 .
^ 組合數學 ─算法與分析─. 九章出版社. : 33. OCLC:44527392
外部連結