點算(Counting)是每個人在孩提時代便開始學習的技巧,有誰不懂得數1、2、3 ...?但我們有否想過,點算其實可以發展為一門學問,甚至成為「組合數學」(Combinatorics)的一個重要分支-「點算組合學」 (Enumerative Combinatorics,亦作「計數組合學」)。一個個的去數固然是再容易不過的事,但也是最沒有效率的點算方法,它只能解決數目不大的問題。對於涉及較大數目的問題,我們就不能再這樣列出具體的事物然後一個個的去數,而必須訴諸抽象的數學推理,這就是「點算組合學」的價值所在。
「點算組合學」是本人喜愛的數學分支之一,本專題將以循序漸進,由淺入深的方式介紹「點算組合學」的基本知識和解題技巧。由於本人學識有限,本專題只擬介紹該學科最基礎的知識,包括「排列和組合」、「容斥原理」、「母函數」、「遞歸關係」等題目。
本專題旨在介紹筆者所認識的「點算組合學」的有趣知識,因此著重對該學科最基礎定理的直觀理解,而無意包羅該學科的所有定理,亦無意進行嚴謹的數學推導。讀者如欲對該學科有更深入的認識,可參閱相關的教科書。