• 沒有找到結果。

不含定距元素的組合問題

N/A
N/A
Protected

Academic year: 2022

Share "不含定距元素的組合問題"

Copied!
6
0
0

加載中.... (立即查看全文)

全文

(1)

欄柵前面的思考一一

不含定距元素的組合問題

柳柏濂

.

改造猴子籠

圖一是一個關著白鶴的鐵籠, 籠門的鐵 欄柵有 15條鐵枝。

現在, 我們把這個籠子改關猴子, 猴子比 白鶴大得多, 因此, 門上的鐵條可以減少, 減 少的原則是: 每兩條鐵枝間的間隔最多是原 來的兩倍, 否則, 猴子就會逃之夭夭。 (圖二)

如果我們要在原來的欄柵上, 精簡出 6 條鐵枝, 那麼, 有多少種刪取鐵枝的方案?

誠然, 如果請你隨便拿出6條鐵枝來 (只 要猴子不會跑掉), 這是一個輕而易舉的問題。

一個最普通的做法是: 從欄柵由左至右相隔 一枝依次取出 6枝便可。

圖一

圖二

現在的問題是: 有多少種令猴子不會跑 掉的取鐵枝方案, 這不是一個用枚舉方法可 以輕易解決的問題, 特別是原來柵欄鐵枝相 當多的時後。 當然, 若所取的鐵枝太多時, 合 要求的取法可能不存在, 例如, 在上述的欄柵 中, 不能取出 9 條鐵枝來。

既然, 我們知道: 取 6 條鐵枝的方案不 少, 那麼, 一個自然應該思考的問題是: 這些 形形色色的方案裡, 有一些什麼樣的共同特 點?

稍作思考, 不難知道, 取出的鐵枝沒有兩 條相鄰, 否則, 鐵籠就有一個至少是原來 3 倍 寬的間隔, 猴子將會出入自如。 於是, 問題歸

29

(2)

結為: 從排列成一直線的 15條鐵枝中, 任取 6 枝, 使它們無兩枝相鄰的取法數。

為方便思考, 我們可以把問題更加數學 化, 抽象成下面一個典型的數學問題:

問題1: 從 1, 2, . . . , 15 中取出 6 個數, 使它們無兩個數相鄰, 有多少種取法?

設我們取出的 6個數是 {a1, a2, . . . , a5, a6} ⊂ {1, 2, . . . , 14, 15}, 不妨令 a1 <

a2 < a3 < a4 < a5 < a6

“不相鄰”這個日常用語的數學意義, 可 表述為:

ai− ai−1> 1, i = 2, 3, 4, 5, 6 或

ai > ai−1+ 1 (1)

如果 a1, a2, . . . , a6 是某個有限數集中

的任意6個不同的數, (2)

則這是一個容易解決的問題, 但因 a1, a2, . . . , a6 增加了條件 (1) 的約束, 問題就變得 稍為棘手。

一個自然的想法是: 把條件 (1) 轉化為 條件 (2)。 於是, 我們便有下面的做法:

把 a1, a2, . . . , a6 依次減去 0, 1, . . . , 5 後所得到的數記為 a1, a2, . . . , a6。 即

a1 a2 a3 a4 a5 a6

−) 0 1 2 3 4 5

a1 a2−1 a3−2 a4−3 a5−4 a6−5 (a1) (a2) (a3) (a4) (a5) (a6)

(3)

這裡, 因為條件 (1), 我們便有 ai ≥ ai−1+1, i = 2, 3, . . . , 6 (注意: 這裡比 (1) 式多了一

個等號), 也就是說, a1, a2, . . . , a6 是相異的 自然數。 這 6 個自然數最小可能是 1, 最大可 能是 a6 = a6− 5 ≤ 15 − 5 = 10。 於是, 我 們把問題 1 轉化為

問題1: 求由 {1, 2, . . . , 10} 中任意取 出 6 個相異數 的方法數?

我們不難看到, 數組 (a1, a2, . . . , a6) 與 (a1, a2, . . . , a6) 是一一對應的。 因 (a1, a2, . . . , a6) 的不同組數有

10 6

!

= 10!

4!6! = 210。

即問題 1 的取法有 210種。

至此, 我們可以想到一般的問題:

問題2: 從 1, 2, . . . , n 中任取 k 個數, 使之無兩個數相鄰, 有多少種不同的取法?

早在 19 世紀, 數學家吉高 (Gergonne, 1812 [1]) 已經解決了這個問題。 (有些文獻 稱, 此結果由 Klaplansky 在 1943 年得到, 見 [2], 本文依據文獻 [3]的說法。) 讀者可以 完全仿照上面的方法, 就能推導出問題2的解 是

n − k + 1 k

!

(4) 問題 1 的解是 (4) 式中 n = 15, k = 6 算得的結果。(4) 式還告訴我們, 要問題 2 有 解, 必須 k ≤ n − k + 1, 即 k ≤ 12(n + 1)。

於是, 本節開頭例子中, 要取 9 條鐵枝是不可 能的。

當然, 如果籠子改關其它力氣更大的動 物, 為了增大安全係數, 所取出的 k 條鐵枝, 每兩條間至少要留下 l 條 (l ≥ 1) 鐵枝, 則

(3)

31

仿照 (3) 的方法, a1, a2, . . . , ak 分別減去 0, l, . . . , (k − 1)l, 便得不同的取法數是

n − (k − 1)l k

!

(5) 讀者不難發現, (4) 是 (5) 當 l = 1 時的特 款。(當然, 在 (5) 式中, 需要 k ≤ n+ll+1)

二 . 把猩猩關進去

如果把當初的白鶴籠改關猩猩。 我們知 道, 猩猩比猴子大得多。 因此, 鐵枝的間隔可 以至多是原來的 3 倍。 然而, 猩猩的力氣又比 猴子大, 我們不容許籠子的欄柵出現這樣的 一條鐵枝, 它兩邊相鄰的鐵枝均被拿去。

這是一個與上節情形相近, 但又難度增 大的問題。

用數學的語言來描述, 可以表述為:

問題3: 從 1, 2, . . . , n 中任取 k 個數, 使任意兩個數 i, j(j > i), j − i 6= 2, 問有 多少種不同的取法?

(請對照問題 3 與問題 2 有何不同?) 直觀地說, 從 1, 2, . . . , n 中取出的 k 個數中, 不存在相隔一位的兩個數。 這種取法 數, 我們記為 f (n, k)。

沿用第一節中的組合方法, 已經很難直 接求出 f (n, k)。 然而, 我們可以探求間接的 方法, 即尋求 f (n, k) 的遞歸關係。

我們先看兩個特定的元 1,2。

在取出的 k 個元中, 可作下列的分類:

1 類: 不含元 1 2 類: 含元 1

2.1 類: 不含元 2 2.2 類: 含元 2

易見, 所有第1類的 k 個元的取法數是 f (n−

1, k)。 現考慮第 2 類 k 元的取法: 對 2.1 類的 k 元, 必不含3, 故取法數是 f (n − 3, k − 1), 而對 2.2 類的 k 元, 必不含 3 及 4, 因此取法 數是 f (n − 4, k − 2)。

綜上所述, 便得

f (n, k) = f (n−1, k)+f (n−3, k−1) +f (n−4, k−2) (6) 不難看出, 初始條件 f (n, 1) = n, f (1, k) = 0, k > 1, 我們約定 f (n, 0) = 1

於是, 由 (6) 式, 運用遞歸關係, 特別 是借助於電腦, 不難由初始條件, 對於某個 n, k, 算出 f (n, k) 的值。

正如我們所見,(6) 式是不難用組合方法 得出的。 然而, 要從 (6) 式導出 f (n, k) 的一 個顯表達式是很不容易的。

儘管問題 2與問題 3相當類似, 可是, 問 題 2 是早在 19 世紀已被解決的古典問題, 而 問題 3 的顯式卻推遲到本世紀 80 年代才被解 決。

1981 年柯瓦利納 (J.Konvalina, [4]) 證明了

f (n, k) =

Pk

i=0

n+1−k−2i

k−2i

, 若 n ≥ 2(k − 1) 0, 若 n < 2(k − 1)

(7)

這裡, h = [k/2]。

以第一節例子的 n = 15, k = 6, 由 (7) 式, 因 15 > 2(6 − 1)10, 可算得

f (15, 6) =

X3 i=0

15 + 1 − 6 − 2i 6 − 2i

!

(4)

= 10 6

!

+ 8 4

!

+ 6 2

!

+ 4 0

!

= 296。

柯瓦利納證明 (7) 式的方法是驗證 (7) 的右邊表達式既滿足 (6) 式的初始條件, 又 滿足 (6) 式的遞歸關係。

柯氏用到的方法和技巧並不複雜, 可是, 令我們驚異和感興趣的是: 柯瓦利納是如何 一矢中的地猜出 f (n, k) 的表達式 (7)?

柯氏沒有說出這一點。 讀完他的論文後, 我們也理不出他的探索思路, 但是, 從柯氏僅 孤立地解決問題 3, 而不能由此進一步推廣解 決下述問題 4 (他自然應該想到了問題 4), 我 們有理由相信, 結果 (7) 是憑數學靈感歸納 和猜測出來的。

三 . 畢其功於一役

柯瓦利納的論文在 1981 年剛一發表, 對照問題 2 和問題 3, 幾個學者幾乎同時 (見 [5] [6] [7] [8]) 想到下列一般的情形。

問題4: 從 1, 2, . . . , n 中任取 k 個數, 使之任意兩個數 i, j(j > i), j − i 6= m, 問 有多少種不同的取法?

若把這種取法數記為 Fm = (n, k) 。 直 觀地說, Fm(n, k) 就是在序列 1, 2, . . . , n 中 取 k 個無 (m − 1) 間隔元的方法數。

顯見, m = 1 即問題 2, F1(n, k) =

n−k+1 k



m = 2, 即問題 3,

F2(n, k) = f (n, k)。

如何求 Fm(n, k)? 求出了它, 我們對此 類組合計數問題將畢其功於一役。

問題 2 的組合議論方法, 並不能解決這 個問題, 而仿照問題 3, 要導出一個形如 (6) 的遞歸式也不勝其繁。 即使得到了這類遞歸 式, 要像柯氏那樣, 猜出一個滿足遞歸式的解, 又談何容易!

然而, 通過了對問題 4 的分析, 我們發 現: 若把 1, 2, . . . , n 分成若干組, 每組元 (排列由小到大) 相鄰兩個元之差 (絕對值) 為 m。 每一組元被看作是一個“軌道”, 那麼, 1, 2, . . . , n 可被分成若干條軌道。 問題 4 的 本質在於: 取 k 個元, 使之任兩個不是每一 軌道的相鄰元, 則問題4不就可以轉化為問題 2 嗎?

按照這個思路, 我們立即可以得到一個 容易在電腦中求解的遞歸式。

定理1([6]): 若 n = qm + r, 0 ≤ r <

m < n, 則對任一個整數 t, 0 < t < m < n, 記 s = qt + min(t, r), 則

Fm(n, k)=

min(k,s)

X

j=max(0,k−n+s)

Ft(s, j)Fm−t(n−s, k−j) (8) 初始值 F1(n, k) = n−k+1k , 且約定 Fm(n, 0) = 1。

證明: 記 N = {1, 2, . . . , n} 是一個 有限數列。 Nt 是 N 的一個子序列, 其中 i ∈ Nt 若且唯若 i ≡ 1, 2, . . . , t(mod m)。

t又是N 的一個子序列, ˜Nt = N − Nt, 即 i ∈ ˜Nt若且唯若i ≡ t+1, t+2, . . . , m(mod m), 這裡, c < t < m。

(5)

33

又記 s =| Nt|。 因為 n = qm + r, 0 ≤ r < m, 故

s =

qt + t, 當 0 < t ≤ r qt + r, 當 r < t < m 即 s = qt + min(t, r)。

要在 N 中取 k 個無 (m − 1) 間隔的元 (其取法數是 Fm(n, k)), 這些元必取自 Nt

或 ˜Nt

若在 Nt 中取 j 個元, (j = 0, 1, . . ., k), 則在 ˜Nt 中取 (k − j) 個元。 考察, Nt : 1, 2, . . . , t, m + 1, m + 2, . . . ,

m + t, . . . , (q − 1)m + 1,

(q − 1)m + 2, . . . , (q − 1)m + t, qm + 1, qm + 2, . . . , qm + min(t, r)

若 r = 0, 則無後面的 qm + 1, qm + 2, . . . , qm + min(t, r) 項 (請讀者注意上述 Nt 中每個元的規律)。

可見, 要保證在 Nt 中取的 j 個元在序 列 N 中無 (m − 1) 間隔, 若且唯若此 j 個元 在 Nt中無 (t−1) 間隔, 若把 Nt重新按自然 數順序由 1到 s 編號, (s = qm+min(t, r)), 則上述取法有 Ft(s, j) 種:

又, 注意到序列

Nft : t + 1, t + 2, . . . , m, m + t + 1, m + t + 2, . . . , 2m, . . . , (q − 1)m + t + 1, (q − 1)m +t + 2, . . . , qm, qm + t + 1, qm + t + 2, . . . , qm + r, (t < r)

若 t ≥ r, 則無 qm + t + 1, qm + t + 2, . . ., qm + r 項。

同理, 要保證在 ˜Nt 所取的 (k − j) 個 元在 N 中無 (m − 1) 間隔, 若且唯若在 N˜t 中無 (m − t − 1) 間隔, 其不同的取法 有 Fm−t(n − s, k − j) 種。 於是

Fm(n, k) =

Xk j=0

Ft(s, j)Fm−t(n−s, k−j), 注意到 j ≤ s 且 k − j ≤ n − s, 便得 (8) 式。

初始條件 F1(n, k) 是第一節已得的結 果。 至此, 我們便完成了對定理 1的證明。

由定理 1, 我們容易得到下列有用的系。

系1.1: 若 n = qm + r, 0 ≤ r < m, 則

Fm(n, k) (9)

=

min(k,s)

X

j=max(0,k−n+s)

F[m2](s, j)F[m+1

2 ](n − s, k − j) 這裡 s = q[m2] + min([m2], r),

由 (8) 式, 令 t = 1, 並注意到 F1(n, k) =n−k+1k , 便得

系1.2:

Fm(n, k) =

Xk j=0

[n−1m ]−j +2 j

!

×Fm−1(n−[n−1

m ]−1, k−j) (10) 運用 (9) 和 (10) 式, 我們用電腦實現遞歸, 對於特定的 n, k, m, 不難得到 Fm(n, k) 的 值。 然而, 作為一個計數問題, 完整的結論應 該是求出所求對象的顯計數式。 事實上, 在

(6)

此, 我們已經完全能夠做到這一點。 只要累次 運用 (10) 式, 便得到

定理2:

Fm(n, k)

= X

j1+j2+...+jm=k

Ym i=1

[n−im]−ji+2 ji

!

(11)

這一結果, 曾在文獻 [5]、[6]、[7]、[8]中, 用各不相同的方法導出。

在 (11) 式中, 令 m = 1, m = 2 便分 別得到本文問題 2、 問題 3 的結果。 這從另一 個側面, 驗證了 (11) 式的正確性。

至此, 我們完全解決了不含定距元素的 組合數問題。 不言自明, 它的意義遠遠不是僅 為了改造一個鐵籠而已。 得到了一個有意義 的計數式後, 掩卷沉思, 我們略有所悟: 在 真理的探索中, 往往經歷了一個由特殊到一 般的歷程。 然而, 只有那些最能刻畫問題本質 的方法, 才能勝任對一般規律的描述。

當然, 從縱深的方向解決的一個問題, 並 不意味著探索的結束。 從橫寬的聯繫, 我們也 可以發現新的問題。 例如, 如果上述的集 N 不是一個序列, 而是分布在一個環上的排列, 那麼, 相應的不含定距元素的組合就需要新 的方法 和得出不同的結果。 有興趣的讀者可 參見 [5]、[6]、[7]、[8]。

參考文獻

1. Gergonne, Solution dun prol`eme, An- nales de Gergonne, 3(1812), 59-75.

2. I. Kaplansky, Solution of “problem des menages”, Bull. Math. Soc. 49(1943), 784-785.

3. L. Comtet. Advanced combinationrics, D. Reidel Publishing Company, 1974.

4. J. Konvalina, On the number of combinations without unit separation, J.C.T.(A).31(1981), 101-107.

5. H. Prodinger, On the number of com- binations without a fixed distance, J.C.T.(A) 35(1983), 362-365.

6. Liu Bolian (柳柏濂), A recursive for- mula for the number of combinations without elemennts at a fixed distance, Hunan Ann. Math. 5(1985) 2: 33-37.

MR 1987i:05024.

7. Ke Xin (柯欣), A combinatorial prob- lem, 中國組合數學論文集, 大連, 1984。

8. Chu Wenchang(初文昌), On the number of combinations without k-separations, 中國組合數學論文集, 大連, 1984。

—本文作者任教於廣州華南師範大學數學 系—

參考文獻

相關文件

針對這兩個案子,補充說明一下,第一個原則就是,我們所有 單位在訂規格的時候,一定要知道這個規格訂出來,要廠商能

 當化合物是由兩種元素組成時,則稱為二元化 合物(binary compound)。二元離子化合物的實

來到附小之後,我覺得附 小的孩子最幸福之處就是有許 多機會學習「學科外、生活中 的知識」,這次的走讀便是一 個例子。車庫園區就在學校附 近,但我想不少學生到了那邊

在相隔 80 公尺的兩根電線桿中間,每隔 20 公尺種榕樹一 棵,在兩棵榕樹之間種椰子樹 3

在相隔 80 公尺的兩根電線桿中間,每隔 20 公尺種榕樹一 棵,在兩棵榕樹之間種椰子樹 3

山不在高, 有仙則名; 水不在深, 有龍則 靈 。 數學也是如此, 常常我們只為了尋求很難 的問題而將周遭切身的真理疏忽了, 以致淪 為耍雜技, 訓練有素的猴子, 或者最後一無所 有。

凡是一組資料是隨著時 間的先後順序而取得的, 就可稱為是一組時 間序列的資料。 最常見的例子, 譬如: 某段時 間內所記錄的每日股票市場; 每年太陽黑子 的平均數目等等。

數論中有一個很有用的原理叫做鴿龍原 理。 假如有 n 個籠子裡面有 n+1 隻鴿子, 那 一定有一個籠子裡至少有兩隻鴿子。 Dirich- let 用這個原理來對無理數找接近的有理數, 他得到了