組合數學是一門有廣泛應用且頗引人入勝的數學分枝。研讀組合數學並不需要太多數學背景;在高中數學裏便已介紹了許多有趣且困難的排列組合問題。但在那裏所用的方法卻是初等的;有如解算術題,每一問題有各自思考方法與技巧。在本文中我們將討論一類排列組合問題,它們可以用列線性回歸方程 (linear recurrence) 的方法來求解,並用例題來說明兩種回歸方程求解的步驟。我們所作僅為一粗淺介紹,所選取的材料可為讀過微積分的讀者所接受。有興趣的讀者應進一步參閱本文後所列參考資料。 我們先用例題來說明回歸方程的數學意義和它與排列組合問題之關係。 [例1] 設有 n 個半徑遞增的圓環依大小套在一圓柱上,最大的環在最下面。我們要將這些環移置至另一圓柱上,另有第三個圓柱作暫時放置圓環用,但移置時規定大環永不可放在小環上面,每次移動一個環,問最少要移動幾次才可將 n 個環由一圓柱移至另一圓柱?這便是著名的「河內之塔」問題 (The tower of Hanoi problem)。顯見當 n=1 時,我們只需 1步;當 n=2 時,我們需要 3 步。但當 n 很大時,例如, n=64,問題的答案便不顯然了。設 an (n=1,2,3,…) 為移動 n 個環的最少次數,則 a1=1, a2=3。如果 n>2,我們可先用 an-1 步將第一柱上面之 n-1 個環移至第三柱上,然後將最大環移至第二柱,最後再用 an-1 步將第三柱上之 n-1 個環放在第二柱最大環之上面。這樣便完成以最少步數移置這 n 個環,故得
an
=
(1)
a1
=
1
(2)
數列 可看成是定義在正整數集上的函數。 (1)式表示了兩相連正整數間該函數值之關係,稱為回歸方程,又稱差分方程 (difference equation)。 (2)式稱為方程(1)之邊界條件 (boundary condition)。如所給 n 之值不大,我們可用邊界條件 (2)代入 (1)式之右邊而逐步得出 an之值。方程 (1)之解是一用 n 表達 an 的一般形式。我們先討論應用生成函數 (generating function) 的方法求滿足邊界條件(2)之方程 (1)的解。 我們先提出生成函數的定義。設 是一數列,則函數
稱為與數列 對應之生成函數。生成函數又稱形式冪級數 (formal power series),是看成一代數對象,我們無需顧慮其收斂性。生成函數可以相加與相乘,也可以形式地求其導數與反導數 這些運算法則恰如冪級數的對應運算。設