• 沒有找到結果。

以直向、橫向、斜向磁磚鋪滿 m × n 矩形的研究

N/A
N/A
Protected

Academic year: 2022

Share "以直向、橫向、斜向磁磚鋪滿 m × n 矩形的研究"

Copied!
24
0
0

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

全文

(1)

以直向、橫向、斜向磁磚鋪滿 m × n 矩形的研究

台北市立建國高級中學 江誠敏 指導老師 沈朋裕

Abstract

The purpose of this research is to study a tiling problem: Given an m× n chessboard, how many ways are there to tile the chessboard with 1× 2 dominoes and also ”diagonal” dominoes (display in the picture below). First we use a transfer- matrix method and recursive method to calculate the answer. Then we try to use a similar method given out by a research in 2001 to find out the formula of the tiling number.

1 摘 摘 摘要 要 要

我們的主題是研究使用直向、橫向與斜向磁磚不交疊地鋪滿 m × n 的長方形的方法總 數. 磁磚總共有如下圖中間所列出的四種(其中著上藍色和綠色兩者統稱為「斜向的」

磁磚), 並且斜向磁磚不能夠有最右圖所顯示的交疊的情形.

在 1961 年的論文中給出了只使用直向、橫向磁磚鋪滿 2m × 2n 的長方形的方法數的 一個漂亮的公式, 而 2001 年的論文以一個較簡單的方法證明了這個結果. [1–3]

4mn

m i=1

n j=1

(

cos2

2m + 1 + cos2 2n + 1

)

而我們先從固定 m 尋找遞迴式的方法出發, 接著用 m 的結果推出 m + 1, 最後期望能找 出與論文一樣的一個漂亮的一般通式.

2 研 研 研究 究 究簡 簡 簡介 介 介

2.1 研 研 研究 究 究動 動 動機 機 機

原本研究動機其實是從一個遊戲轉化而成了一個鋪磁磚的問題, 一般我們都只使用直向與 橫向兩種磁磚來鋪, 但如果加上其他種類的磁磚, 會發生甚麼事呢? 這觸發了我們對於以 下推廣問題的研究: 如果除了使用直向、橫向的磁磚, 再加上「斜向的」磁磚來鋪滿一個 矩形, 會與只使用直向、橫向的磁磚的鋪法有哪些方面的相同或相異?

此次研究的內容, 與矩陣、遞迴數列相關.

(2)

2.2 研 研 研究 究 究目 目 目的 的 的

找出鋪磁磚的方法數與矩形的長度、寬度的關聯.

3 研 研 研究 究 究內 內 內容 容 容-轉 轉 轉移 移 移矩 矩 矩陣 陣 陣方 方 方法 法 法

3.1 符 符 符號 號 號說 說 說明 明 明

我們用 Rectm,n表示 m × n 的矩形區域.

在討論鋪磁磚的過程中, 我們由左至右依序鋪上磁磚, 此時我們定義一個「狀態」: 當我 們由左至右依序鋪上磁磚後, 若恰好將前面 i 行完全鋪滿了, 即 1, 2, ..., i 行上的所有格子 都被磁磚所覆蓋時, 我們就稱目前 i + 1 行上的格子是否被磁磚填滿的狀況為一個「狀 態」.

如上圖所示為撲滿第 4 行的情況, 而此時的狀態如下圖所示.

為了方便我們將給每種狀態一個標號的方式. 對於一個狀態, 我們從上到下如果格子已被 填滿則記為 1, 否則為 0, 這樣每一個狀態會對應到一個 01 字串, 我們把這個01 字串的值 當作狀態的編號.

n

m

如上圖為例, 這個狀態對應到的 01 字串為 (0101), 而後面會用字串的 2 進位值來排序.

3.2 Rect

2,n

的 的 的遞 遞 遞迴 迴 迴關 關 關係 係 係

我們先計算 Rect2,n 的遞迴關係, 詳細的計算過程如下:

(3)

注意到狀態中如果出現連續的 11, 由於狀態的定義, 不容許用直的磁磚排. 因此我們可以 列出如下的轉移矩陣

(00) (01) (10) (11)

(00) 1 0 0 1

(01) 0 1 1 0

(10) 0 1 1 0

(11) 1 0 0 0

定義矩陣 T2=



1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0



令 an, bn, cn, dn 分別表示鋪滿 Rect2,n 且使最右邊是 (00), (01), (10), (11) 狀態的方法 數. 從轉移矩陣我們會有以下等式



an+1

bn+1

cn+1

dn+1



 =



1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0





an

bn

cn

dn



(4)

事實上我們可以將 1 的個數為偶數的狀態挑出來以簡化運算 [an+1

dn+1 ]

= T2 [an

dn ]

= [1 1

1 0 ] [an

dn ]

而初始值為 a(0) = 1, d(0) = 0, 特徵多項式為 P (x) = x2− x − 1, 根據 Cayley-Hamilton 定理有 P (T2) = O2,2,則對於 n ≥ 2, 有 T2n = T2n−1+ T2n−2. 我們得到 an= an−1+ an−2. 事實上當 Rect2,n 時是無法放置斜向的磁磚的, 因此方法數相當於用直向和橫向鋪滿 Rect2,n的方法數, 而這即是 Fibonacci 數列, 遞迴式與我們的結果相符.

3.3 從 從 從 Rect

m,n

到 到 到 Rect

m+1,n

現在我們希望能利用 Rectm,n的轉移矩陣推出 Rectm+1,n 的轉移矩陣. 例如: m = 2 的 狀態 (00), (01), (10), (11), 推到 m = 3 的狀態 (000), (001), (010), (011), (100), (101), (110), (111). 事實上對於每一個 m = k 時的狀態 (s), 當我們要推至 m = k + 1 時, 只需 要考慮兩種情況, (0s) 和 (1s).

k

(s)

k+ 1

(0s)

k+ 1

(1s)

因此鋪滿 Rectm+1,n的轉移矩陣的長和寬都會是原來 Rectm,n轉移矩陣的2 倍. 令 S1

代表鋪滿 Rectm,n 時的所有狀態的集合, S2 代表Rectm+1,n 時的所有狀態的集合, 可知 S2={(0s), (1s) : s ∈ S}, 若鋪滿 Rectm,n的轉移矩陣型態如下:

(S)

(S)

則鋪滿 Rectm+1,n的轉移矩陣即如下:

(0S) (1S)

(0S)

(1S)

我們有以下定理:

定定定理理理 1. 假假設 Rectm,n 轉移矩陣為 Tm,且其中 A00, A10, A01, A11 為將 Tm 切成 4 個相 等大小的 block. 即

Tm=

[A00 A10

A A

]

(5)

而將 Rectm+1,n 轉移矩陣 Tm+1表示成

Tm+1=

[B00 B10

B01 B11

] .

其中 B00, B10, B01, B11 為將 Tm+1 切成 4 個相等大小的 block. 則我們可以證明會有以 下關係式:

B01= B10= Tm=

[A00 A10

A01 A11

]

B11=

[A10 0 A11 0 ]

B00=

[ A10 0 A00+ A11 A10

]

證證證明明明. (1) B01= Tm

由我們定義的轉移矩陣可以知道 B01 代表從(0S1)轉移到(1S2)的方法數, 即未轉移前 的最右上角的區域是還沒有被填滿的, 而轉移後最右上角的區域必須是被填滿的, 如 圖所示:

(0S1)→(1S2)

(S1)→(S2)

可以知道綠色的部分一定要放置橫的磁磚, 因此方法數相當於忽略最右上角的區域而 只看下面的方法數, 即為 (S1)轉移到 (S2)的方法數可用轉移矩陣 Tm表示.

(2) B10= Tm

B10 代表從(1S1)轉移到(0S2)的方法數, 即未轉移前的最右上角的區域是已被填滿的, 而轉移後最右上角的區域必須是沒有填滿的, 如圖所示:

(1S1)→(0S2)

(S1)→(S2)

可以知道最上面無法放置磁磚, 因此方法數相當於忽略第一列只看下面的方法數, 即 (S1)轉移到 (S2)的方法數可用轉移矩陣 Tm表示.

(6)

(3) B11=

[A10 0 A11 0 ]

B11 代表從(1S1) 轉移到(1S2)的方法數, 即未轉移前最右上角的區域已被填滿的, 而 轉移後最右上角的區域必須是沒有填滿的, 此時我們分兩種情況討論.

假設起始的狀態集為 (1S1),轉移後的狀態集為 (1S2).

(i) S1= (1S1)

即未轉移前的第二格也必須是已被填滿的.

(11S1)→(1S2)

上圖為 (11S1) 轉移到 (10S2) 的例子, 可以知道綠色的格子無法放置磁磚, 而 (11S1)轉移到 (11S2)為同樣的狀況, 因此沒有方法可以填滿, 故方法數 = 0.

(1S1) [ ] (0S2) 0 (1S2) 0 .

(ii) S1= (0S1)

即未轉移前的第二格必須是未被填滿的.

(10S1)→(1S2)

(1S1)→(S2)

上圖為 (10S1)轉移到 (10S2)的例子, 可以知道綠色的格子必須放置斜的磁磚, 而 (10S1)轉移到 (11S2)為同樣的狀況, 因此方法數相當於先把轉移前的第二格 方塊填滿的轉移方法數, 即 (1S1)轉移到 (S2) 的方法數, 也就是 (1S1)轉移到

(S2)的方法數,

(0S1) [ ] (0S2) A10

(1S2) A11

.

綜合以上兩點, 有: B11=

(0S1) (1S1)

[ ]

(0S2) A10 0 (1S2) A11 0 =

[A10 0 A11 0 ]

(7)

(4) B00=

[ A10 0 A00+ A11 A10

]

B00代表從(0S1)轉移到(0S2)的方法數, 即未轉移前最右上角的區域已被填滿的, 而轉 移後最右上角的區域必須是沒有填滿的, 此時我們分四種情況討論.

假設起始的狀態集為 (0S1),轉移後的狀態集為 (0S2).

(i) S1= (0S1), S2= (0S2)

即未轉移前和轉移後的第二列也必須是沒有被填滿的.

(00S1)→(00S2)

(1S1)→(0S2)

可以知道綠色的格子一定要放置直向的磁磚, 因此方法數相當於先把轉移前的 第二列方塊填滿的轉移方法數, 即 (1S1)轉移到 (S2)的方法數, 也就是 (1S1)轉 移到 (0S2)的方法數可用矩陣 A10 表示.

(ii) S1= (0S1), S2= (1S2)

即未轉移前的第二列必須是未被填滿的, 而轉移後的第二列是被填滿的, 此狀況 有兩種擺法.

(00S1)→(01S2)

(1S1)→(1S2)

如果放置直的磁磚, 方法數相當於先把轉移前的第二列方格填滿的轉移方法數, 即 (1S1)轉移到 (S2) 的方法數, 也就是 (1S1) 轉移到 (1S2)的方法數可用 A11

表示.

(00S1)→(01S2)

(0S1)→(0S2)

(8)

如果放置斜向的磁磚, 方法數相當於先把轉移後的第二列方格先填滿的轉移方 法數, 即 (S1)轉移到 (0S2)的方法數, 也就是 (0S1)轉移到 (0S2)的方法數可用 A00表示.

因此方法數為兩種擺法的總和, 即可以用矩陣 A00+ A11表示.

(iii) S1= (1S1), S2= (0S2)

即未轉移前的第二列必須是已被填滿的, 而轉移後的第二列是未被填滿的.

(01S1)→(00S2)

可以知道綠色的格子無法放置磁磚, 因此沒有方法可以填滿, 故方法數 = 0.

(iv) S1= (1S1), S2= (1S2)

即未轉移前和轉移後的第二列也必須都是被填滿的.

(01S1)→(01S2)

(1S1)→(0S2)

可以知道綠色的格子一定要放置斜向的磁磚, 因此方法數相當於先把轉移後的 第二列方格填滿的轉移方法數, 即 (S1)轉移到 (0S2)的方法數, 也就是 (1S1)轉 移到 (0S2)的方法數可用矩陣 A10 表示.

綜合以上四點, 有: B11=

(0S1) (1S1)

[ ]

(0S2) A10 0 (1S2) A00+ A11 A10 =

[ A10 0 A00+ A11 A10

]

由定理 1 我們可以得出以下推論:

推推推論論論 1. 令 an 為用直向、橫向和斜向撲滿 Rect4,n 的方法數, 則有遞迴式 an = 5an−1+ 4an−2− 12an−3+ 9an−4+ 7an−5− 14an−6+ 5an−7.

(9)

證證證明明明. 首先由轉移矩陣的性質, 可以知道若令

u =[

1 0 0 · · · 0] , v =





 1 0 0 ... 0







則 an = uT4nv.

我們先從 Rect2,n的轉移矩陣出發

T2=



1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0



 依據我們找到的規則, Rect3,n 的轉移矩陣

T3=











0 1 2 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0











再繼續做下 Rect4,n 的轉移矩陣

T4=



























1 0 0 1 0 2 3 0 0 1 2 0 1 0 0 1 0 1 1 0 2 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 2 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0



























現在我們可以把與 1 和 0 的個數皆為偶數的狀態相關的行與列挑出來.

T4 =

(0000) (0011) (0101) (0110) (1001) (1010) (1100) (1111)





















(0000) 1 1 2 3 1 2 1 1

(0011) 1 0 0 1 0 1 1 0

(0101) 0 0 1 1 1 1 1 0

(0110) 0 0 1 1 1 1 0 0

(1001) 1 1 1 1 1 1 1 0

(1010) 0 1 1 1 1 1 0 0

(1100) 1 1 1 1 0 0 0 0

(1111) 1 0 0 0 0 0 0 0

此為 Rect4,n轉移到 Rect4,n+1 的簡化轉移矩陣, 其特徵多項式為 P (x) = x8− 5x7− 4x6+ 12x5− 9x4− 7x3+ 14x2− 5x

(10)

這是使用 wolfram alpha [5]計算的. 根據 Cayley-Hamilton 定理有 p(T4) = O8,8 則對於 n≥ 7, 有

T4n= 5T4n−1+ 4T4n−2− 12T4

n−3+ 9T4n−4+ 7T4n−5− 14T4

n−6+ 5T4n−7. 我們將等號兩邊同乘 u 和 v

uT4nv = 5uT4n−1v + 4uT4n−2v− 12uT4

n−3v + 9uT4n−4v +7uT4n−5v− 14uT4

n−6v + 5uT4n−7v.

即 an = 5an−1+ 4an−2− 12an−3+ 9an−4+ 7an−5− 14an−6+ 5an−7. 根據推論 1, 我們計算出以下的結果.

n an

0 1

1 1

2 5

3 25

4 139

5 751

6 4051

7 21849

8 117877

9 635969

10 3431155 11 18511575 12 99872603

我們用同樣的方法計算只用直和橫的磁磚鋪滿 Rectm,n 的方法數. 我們先列出只用直和

橫的磁磚時 Rect2,n 到 Rect2,n+1 的轉移矩陣 τ2 =



1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0



 並且用同樣的方法小

心推斷, 我們會得出類似從 Tm到 Tm+1的遞推關係, 即以下定理.

定定定理理理 2. 假設 Rectm,n 轉移矩陣 τm如下

τm=

[A00 A10

A01 A11

]

其中 A00, A10, A01, A11 為將 τm 切成 4 個相等大小的矩陣.

而 Rectm+1,n 轉移矩陣 τm+1 如下

τm+1=

[B00 B10 B01 B11 ]

其中 B00, B10, B01, B11 為將 τm切成 4 個相等大小的矩陣.

則會有以下關係式:

B01= B10= τm=

[A00 A10 A01 A11 ]

B11= 0 B00=

[A10 0 A11 0 ]

(11)

證證證明明明. (1) B01= τm

由我們定義的轉移矩陣可以知道 B01 代表從(0S1)轉移到(1S2)的方法數, 即未轉移前 的最右上角的區域還沒有被填滿的, 而轉移後最右上角的區域必須是被填滿的, 如圖 所示:

(0S1)→(1S2)

(S1)→(S2)

可以知道綠色的部分一定要放置橫的磁磚, 因此方法數相當於忽略第一格只看下面的 方法數, 即 (S1)轉移到 (S2)的方法數可以 τm表示.

(2) B10= τm

B10 代表從(1S1)轉移到(0S2)的方法數, 即未轉移前的最右上角的區域是已被填滿的, 而轉移後最右上角的區域必須是沒有填滿的, 如圖所示:

(1S1)→(0S2)

(S1)→(S2)

可以知道最上面無法放置磁磚, 因此方法數相當於忽略第一列只看下面的方法數, 即 (S1)轉移到 (S2)的方法數可用矩陣 τm表示.

(3) B11= 0

B10 代表從(1S1)轉移到(1S2)的方法數, 即未轉移前的最右上角的區域是已被填滿的, 而轉移後最右上角的區域也必須是填滿的, 如圖所示:

(11S1)→(1S2)

可以知道綠色的格子無法放置磁磚, 因此沒有方法可以填滿, 故方法數 = 0.

(12)

(4) B00=

[A10 0 A11 0 ]

B00 代表從(0S1)轉移到(0S2)的方法數, 即未轉移前的最上面一格是未被填滿的, 而轉 移後最上面一格也必須是未填滿的, 此時我們分兩種情況討論.

假設起始的狀態集為 (0S1),轉移後的狀態集為 (0S2).

(i) S1= (1S1)

即未轉移前的第二格也必須是已被填滿的.

(01S1)→(0S2)

上圖為 (01S1) 轉移到 (00S2) 的例子, 可以知道綠色的格子無法放置磁磚, 而 (01S1)轉移到 (01S2)為同樣的狀況, 因此沒有方法可以填滿, 故方法數 = 0.

(1S1) [ ] (0S2) 0 (1S2) 0 . (ii) S1= (0S1)

即未轉移前的第二格必須是未被填滿的.

(00S1)→(0S2)

(1S1)→(S2)

上圖為 (00S1)轉移到 (00S2)的例子, 可以知道方法數相當於先把轉移前的第二 格方塊填滿的轉移方法數, 而 (00S1) 轉移到 (01S2)為同樣的狀況, 因此方法數 即 (1S1)轉移到 (S2)的方法數, 也就是 (1S1)轉移到 (S2)的方法數.

(0S1) [ ] (0S2) A10 (1S2) A11

.

綜合以上兩點, 有: B00=

(0S1) (1S1)

[ ]

(0S2) A10 0 (1S2) A11 0 =

[A10 0 A11 0 ]

(13)

同樣的依據定理 2 我們可以得出以下推論:

推推推論論論 2. 令 bn 為用只用直向和橫向撲滿 Rect4,n 的方法數, 則有遞迴式 bn = bn−1+ 7bn−2− bn−3− 12bn−4− bn−5+ 7bn−6+ bn−7− bn−8. 證證證明明明. 由轉移矩陣的性質, 可以知道若令

u =[

1 0 0 · · · 0] , v =





 1 0 0 ... 0







則 bn= uτ4nv.

首先以 τ2 求出 τ3, τ4

τ3=











0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0











τ4=



























1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0



























現在我們可以把與 1 和 0 的個數皆為偶數的狀態相關的行與列挑出來.

τ4 =

(0000) (0011) (0101) (0110) (1001) (1010) (1100) (1111)





















(0000) 1 1 0 0 1 0 1 1

(0011) 1 0 0 0 0 0 1 0

(0101) 0 0 0 0 0 1 0 0

(0110) 0 0 0 0 1 0 0 0

(1001) 1 0 0 1 0 0 0 0

(1010) 0 0 1 0 0 0 0 0

(1100) 1 1 0 0 0 0 0 0

(1111) 1 0 0 0 0 0 0 0

(14)

此為 Rect4,n轉移到 Rect4,n+1 的簡化轉移矩陣, 其特徵多項式為 P (x) = x8− x7− 7x6+ x5+ 12x4+ x3− 7x2− x + 1 根據 Cayley-Hamilton 定理有 p(M) = O8,8 則對於 n >= 8, 有

τ4n= τ4n−1+ 7τ4n−2− τ4

n−3− 12τ4

n−4− τ4

n−5+ 7τ4n−6+ τ4n−7− τ4 n−8. 等號兩邊同乘 u 和 v

4n= uτ4n−1v + 7uτ4n−2v− uτ4

n−3v− 12uτ4 n−4v

−uτ4

n−5v + 7uτ4n−6v + uτ4n−7v− uτ4 n−8v.

bn = bn−1+ 7bn−2− bn−3− 12bn−4− bn−5+ 7bn−6+ bn−7− bn−8.

將 m = 2 帶入已被證明的公式 [1]. 當 n = 2k 時帶入公式且定義表示 4 × n 且 n 為 偶數的矩形以水平與垂直的磁磚鋪滿的方法總數.

wn = 16k

2 i=1

k j=1

( cos2

5 + cos2 2k + 1

)

我們用此公式計算到 n = 12, 並與我們的結果比較.

n bn wn

0 1 1

1 1 -

2 5 5

3 11 -

4 36 36

5 95 -

6 281 281

7 781 -

8 2245 2245

9 6636 -

10 18061 18061

11 51205 -

12 145601 145601

4 研 研 研究 究 究內 內 內容 容 容-路 路 路徑 徑 徑方 方 方法 法 法

這裡我們想要參考 2001 年的論文 [3]中所使用的方法, 來求得加入斜向方塊後的鋪法數, 因此以下 4.1 至 5.3 主要是整理該論文之內容.

4.1 路 路 路徑 徑 徑對 對 對應 應 應

在這裡我們將矩形放置在座標軸上, 我們將矩形的右下角對齊座標原點, 並將矩形的單位 格長度當作是座標的單位長, 如圖所示.

(15)

y

x

對於任何一種在 Rect2m,2n 的合法鋪法, 我們都可以對映到一個有 m 條路徑且路徑互不 相交的路徑組. 對映的方式如下.

• 第 i 條路徑的起點為 (0, 2i − 1.5), 其中 1 ≤ i ≤ m.

• 假設現在的座標為 (x, y), 如果現在碰到了一個水平磁磚的左端, 則前進到 (x + 2, y).

• 如果現在碰到了一個垂直磁磚上面一格的左端, 則前進到 (x + 1, y + 1).

• 如果現在碰到了一個垂直磁磚下面一格的左端, 則前進到 (x + 1, y − 1).

• 當 x = 2n 則結束.

以下圖片為舉例, 可以看出這種路徑走法其實是蠻直觀的.

我們把所有可能走到的點和邊畫出來就成了下圖.

(圖二)

令人驚訝的, 有以下的引理:

(16)

引引引理理理 1. 合法的舖法會一對一對映到路徑互不相交的路徑組, 而路徑互不相交的路徑組也 會一對一對映到合法的舖法.

證證證明明明.

(1) 合法的舖法會一對一對映到路徑互不重複的路徑組:

觀察(圖二), 可以發現最終路徑一定會到達某一個終點, 因此我們只需要說明路徑不 會相交即可, 而這是顯然的, 我們找兩條路徑第一個相交的點, 可以知道其對映的舖 法一定會有磁磚重疊的情況發生.

(2) 路徑互不相交的路徑組也會一對一對映到合法的舖法:

定義一個磁磚是「在邊上的」, 代表這個磁磚剛好被(圖二)的某條邊完整地穿過, 如 下圖中紅色的磁磚都是在邊上的, 而藍色的磁磚不是.

觀察容易知道所有直向的磁磚不論在任何位置皆是在邊上的, 事實上假設直向磁磚 左下頂點為 (a, b), 右上頂點為 (a + 1, b + 2), 如果 2 | a + b 他會被 (a, b + 0.5) 到 (a + 1, b + 1.5)的邊通過, 否則會被 (a, b + 1.5) 到 (a + 1, b + 0.5) 的邊通過, 因此只 有橫向的磁磚可能是「不在邊上的」(如上圖藍色的橫向磁磚).

此時注意到對於一種合法舖法, 所有在邊上的磁磚皆會在某條路徑上, 這是因為對於 磁磚所在的邊上, 我們可以依照路徑的規則往兩邊繼續走下去, 而顯然右端一定最終 會到達某個起點, 左端則會到達某個終點.

因此, 對於任意的路徑組, 在這個鋪法中所有「在邊上的」磁磚都已經被決定了, 我 們可以先把他們鋪上去, 而還沒有被鋪道的地方就只能用「不在邊上的」橫向的磁 磚鋪滿了, 因此鋪法肯定是唯一的, 只需要說明最後一定可以用橫向的磁磚鋪滿就可 以了.首先我們將棋盤黑白塗色, 如下圖.

(17)

如果最後沒有辦法填滿, 代表最後有某幾格是空的, 假設某格白色的格子是空的, 注 意到藍色框起來的白色格子因為是路徑的起點, 所以不可能是空的. 假設紅色框起來 的白色那一格是空的, 現在我們考慮他右邊的黑色格子. 如果他是已經填滿的, 觀察 圖形可以知道不管他被直的或是橫的磁磚所覆蓋, 覆蓋他的那塊磁磚都會是「在邊 上的」, 即是在某條路徑上, 而因為白色的格子的右界上恰好有一個邊的交點, 所以 通過黑色格子的那條路徑也會通過這白色的格子, 矛盾. 因此黑色的格子就必須是 空的, 此時我們便可以用一個「不在邊上的」橫向的磁磚覆蓋這兩格.

如果空的格子是黑色的同理, 因此最後一定可以撲滿整個矩形.

由上述的討論, 我們可以知道撲滿 Rect2m,2n 的方法數 k2m,2n 就相當於有多少種符 合條件的 m 重路徑組. 令 s1, s2, . . ., sm分別表示 m 個起點, 令 t1, t2, . . ., tm分別 表示 m 個起點, 而我們要求的即是有多少不同的路徑組 (p1, p2, ..., pm)使得 pi一條從 si 到 ti 的路徑, 且任兩條路徑都不相交.

由 Lindstrm’s theorem [6]可以知道:

k2m,2n = det





h1,1 h1,2 · · · h1,m

h2,1 h2,2 · · · h2,m

... ... . .. ... hm,1 hm,2 · · · hm,m





其中 hi,j 代表在新的圖上從 si 走到 tj 不同路徑的個數. 我們把這個矩陣記作 Hm,n.

5 延 延 延伸 伸 伸路 路 路徑 徑 徑

為了計算方便, 我們要將原本的路徑延長, 如下圖.

s1s1) s2

s3 t3

t2

t1

¯ s2

¯ s3

¯t1

¯ t2

¯t3

(18)

在延長的圖中, 新的起點和終點分別計為 ¯s1, ¯s2, . . ., ¯sm和 ¯t1, ¯t2, . . ., ¯tm,可以知道不 同的路徑組 (¯p1, ¯p2, ..., ¯pm) 使得 ¯pi 是一條從 ¯si 到 ¯ti 的路徑, 且任兩條路徑都不相交的 個數就等於在原來的圖上不相交的路徑組的個數, 這是因為如果要在新的圖上路徑互不相 交, 那對從任何新起點 ¯si 開始的路徑一定要一直往右上方走到 si 為止, 終點處同理, 因此 由 Lindstrm’s theorem 可以知道

k2m,2n= det





¯h1,1 ¯h1,2 · · · ¯h1,m

¯h2,1 ¯h2,2 · · · ¯h2,m

... ... . .. ...

¯hm,1 ¯hm,2 · · · ¯hm,m





其中 ¯hi,j 代表在新的圖上從 ¯si 走到 ¯tj 不同路徑的個數. 我們把這個矩陣記作 ¯Hm,n.

5.1 路 路 路徑 徑 徑表 表 表示 示 示

對於任何一條從 ¯si 到 ¯tj 的合法路徑, 我們可以用一對正整序列 (A, B) 來表示, 其中 A = a1, a2, ..., ak, B = b1, b2, ...bh,表示的方法如下.

• A 代表這條路徑中往正右方走的邊有 k 條, 並且依序是在 x = ai− 1 的時候通過這 條邊, 通過後 x = ai+ 1.

• B 代表這條路徑中往右下方走的邊有 h 條, 並且依序是在 y = bi− 0.5 的時候通過 這條邊, 通過後 y = bi+ 0.5. 如下圖舉例的路徑可以用 ((1, 4, 6), (3, 3, 2)) 表示.

¯ s1

¯ s2

¯ s3

¯t1

¯ t2

¯t3

1 4 6

3 3

2

可以知道對於一條合法的路徑, 他的路徑表示是唯一的. 觀察後可以知道一條合法路徑 的路徑表示 (A, B) 會有以下性質.

• |A| + |B| = k + h = n + i − j, 這可以由計算得知.

• 1 ≤ ai≤ 2n − 1.

• ai+1≥ ai+ 2,這是因為 ai 表示你已經從 x = ai− 1 走到 x = ai+ 1了, 由於路徑 的 x 座標遞增, 可以知道 ai+1 必須大於等於 ai+ 2.

• 1 ≤ bi≤ 2m − 1.

• bi+1 ≥ bi− 1, 這是因為每次往右下走一次, y 座標只會減少 1, 如果繼續往右下走的 話 bi+1= bi− 1, 而如果到下一次往右下走之間曾向右上走過, 顯然 bi+1≥ bi− 1.

巧妙的是如果一個路徑表示 (A, B) 滿足以上條件, 他就會唯一對映到一條合法路徑.

令 fk,h 表示滿足 1 ≤ ai≤ 2k − 1, ai+1 ≥ ai+ 2,且 |A| = h 不同的序列 A 的個數, gk,h

表示滿足 1 ≤ b ≤ 2k − 1, b ≥ b − 1, 且 |B| = h 不同的序列 B 的個數.

(19)

有了上述性質, 就可以推得在 Rect2m,2n 的情況時從 ¯si 到 ¯tj 的不同路徑數 ¯hi,j =

0≤k≤n+i−j

fn,k× gm,(n+i−j−k),即原本的矩陣 ¯Hm,n可以表示成兩個矩陣的乘積.

H¯m,n= Fm,n· Gtm,n

其中

Fm,n=





fn,0 fn,1 · · · fn,n+m−1

fn,−1 fn,0 · · · fn,n+m−2

... ... . .. ... fn,−m fm,−m+1 · · · fm,n





Gm,n=





gm,n gm,n−1 · · · gm,−m+1

gm,n+1 gm,n · · · gm,−m+2

... ... . .. ... gm,n+m−1 gm,n+m−2 · · · gm,0





Fm,n 和 Gm,n皆為 m × (m + n) 的矩陣. 注意到一些 fi,j 或 gi,j 顯然是不合理的, 此時 應等於 0.

5.2 路 路 路徑 徑 徑對 對 對偶 偶 偶

由上一節的討論我們可以知道 km,n= det( ¯Hm,n) = det(Fm,n·Gtm,n). 再由 Binet–Cauchy 公式, 可以知道

det(Fm,n· Gtm,n) = ∑

J([n+m]m )

det (Fm,n(1, ..., m|J)) · det(Gm,n(1, ..., m|J))

在這裡, 我們考慮一種特殊的圖 Φm,n,他的構造如下.

• 由上到下分別有 m + n 條水平線, 水平線的左端為起點, 右端為終點, 第 i 條水平線 的起點和終點分別為 ui, vi.

• 任兩個相鄰的水平線間都會有 2n − 1 條垂直線段連接兩條水平線, 並且任兩個相鄰 的水平線間的任何一條垂直線段到他右邊的垂直線段的間距都一樣.

• 第 i 條水平線和第 i + 1 條水平線間由左到右的第 1 條垂直線段的水平位置會在第 i− 1 條水平線和第 i 條水平線間由左到右的第 2 和第 3 條垂直線段之間.

以下為 Φ3,4 的圖示.

u1 v

1

u2 v2

u3 v3

u4 v

4

u5 v

5

u6 v

6

u7 v7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

而我們可以在這張圖上找到 F 矩陣和 G 矩陣中的元素的意義! 令 F (i, j) 代表 F 矩陣 第 i 列第 j 行的元素, G 矩陣同樣, 有 F (i, j) = fn,j−i, 即表示滿足 1 ≤ ai ≤ 2n − 1,

(20)

ak+1≥ ak+ 2,且 |A| = j − i 不同的序列 A 的個數, 而每一種符合的 A 序列都可以看作 是在 Φm,n一條從 ui 走到 vj 且只往右方和下方走的路徑過程中所依序經過的數字.

1 2 3 4 5 6 7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

u7 v7

u6 v6

u5 v5

u4 v4

u3 v3

u2 v2

u1 v1

A = (1, 4, 6)

而由 Lindstrm’s theorem, det(Fm,n(1, ..., m|J)), J ∈

([n + m]

m )

就會變成是從 (u1, u2, ..., um)到 (vJ (1), vJ (2), ..., vJ (m))互不相交的路徑組的個數了!

1 2 3 4 5 6 7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

1 2 3 4 5 6 7

u7 v7

u6 v6

u5 v5

u4 v4

u3 v3

u2 v2

u1 v1

J = (2, 5, 6)

相同的有 G(i, j) = gm,n+i−j,即表示滿足 1 ≤ bi≤ 2m−1 ,bk+1≥ bk−1, 且 |B| = n+i−j 不同的序列 B 的個數, 而每一種符合的 B 序列都可以看作是在 Φn,m 一條從 un+i 走到 vj 且只往右方和上方走的路徑過程中所依序經過的數字.

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

u7 v7

u6 v6

u5 v5

u4 v4

u3 v3

u2 v2

u1 v1

B = (4, 3, 5, 5)

(21)

同樣的由 Lindstrm’s theorem, det(Gm,n(1, ..., m|J)), J ∈

([n + m]

m )

就會變成是從 (un+1, un+2, ..., un+m)到 (vJ (1), vJ (2), ..., vJ (m))互不相交的路徑組的個數了.

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

u7 v7

u6 v6

u5 v5

u4 v4

u3 v3

u2 v2

u1 v1

J = (1, 2, 7)

更進一步的, 對於從 (un+1, un+2, ..., un+m)到 (vJ (1), vJ (2), ..., vJ (m)) 互不相交的路徑組 我們可以將它如圖所示對偶.

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

u7 v7

u6 v6

u5 v5

u4 v4

u3 v3

u2 v2

u1 v1

我們將起點改成 (u1, u2, ..., un),而途中只要碰到在原本路徑組中垂直的邊我們便往下走, 容易知道最後終點會是 [m + n]/J, 且對偶後的路徑組中的路徑都不會相交. 而注意到這 即是 det(Fn,m(1, ..., n|[m + n]/J)), J ∈

([n + m]

m )

,

即 det(Gm,n(1, ..., m|J)) = det(Fn,m(1, ..., n|[m + n]/J)), 我們便可以將原本兩個不同類 型矩陣的子方陣行列式的乘積變成同樣類型的矩陣!

5.3 Resultant

由上一節

det(Fm,n· Gtm,n) = ∑

J([n+m]m )

det(Fm,n(1, ..., m|J)) · det(Gm,n(1, ..., m|J))

= ∑

J([n+m]m )

det(Fm,n(1, ..., m|J)) · det(Fn,m(1, ..., n|Jc))

= ∑

J([n+m]m )

(−1)sum(J )+m(m+1)2 det(Fm,n(1, ..., m|J)) · det(Fn,m (1, ..., n|Jc))

= det [ Fm,n

Fn,m ]

(22)

其中 Fn,m 代表將 Fn,m矩陣中第 i 列第 j 行的元素都乘上 (−1)m+n−(i+j), 而第 3 個等 式使用了 Laplace 展開定理.

現在計算 Fm,n裡的元素, 第 i 列第 j 行的元素 F (i, j) = fn,j−i,表示滿足 1 ≤ ai≤ 2n−1, ak+1≥ ak+ 2,且 |A| = j − i 不同的序列A 的個數, 而這相當於從 1, 2, 3, ..., 2n − 2, 2n − 1 中挑出 j − i 個數, 使得挑出來的任兩個數字都不相鄰. 因此 F (i, j) =

(2n− (j − i) j− i

) . 因 此我們可以用組合數寫出矩陣, 為了方便說明我們舉 n = 4, m = 3 作例子.

[ F3,4

F4,3 ]

=

























 (8

0

) (

7 1

) (

6 2

) ( 5 3

) ( 4 4

) ( 3 5

) ( 2 6 ) ( 9

−1

) (

8 0

) (

7 1

) ( 6 2

) ( 5 3

) ( 4 4

) ( 3 5 ) (10

−2 ) (

9

−1 ) (

8 0

) ( 7 1

) ( 6 2

) ( 5 3

) ( 4 4 )

(6

0

) (

5 1 )

(4

2 ) (

3 3 )

(2

4 ) (

1 5 )

(0

6 ) ( 7

−1 )

(6

0 ) (

5 1 )

(4

2 ) (

3 3 )

(2

4 ) (

1 5 )

( 8

−2 ) (

7

−1 )

(6

0 ) (

5 1 )

(4

2 ) (

3 3 )

(2

4 ) ( 9

−3 )

( 8

−2 ) ( 7

−1 )

(6

0 ) (

5 1 )

(4

2 ) (

3 3 )



























而如果將顯然為 0 的值先填上去, 如 (x

y )

中 x < 0 和 x > y 的情況.

[ F3,4

F4,3 ]

=

























 (8

0 ) (

7 1

) ( 6 2

) ( 5 3

) ( 4 4 )

0 0

0

(8 0

) ( 7 1

) ( 6 2

) ( 5 3

) ( 4 4 )

0

0 0

(8 0

) ( 7 1

) ( 6 2

) ( 5 3

) ( 4 4 )

(6

0 ) (

5 1 )

(4

2 ) (

3 3 )

0 0 0

0 (6

0 ) (

5 1 )

(4

2 ) (

3 3 )

0 0

0 0

(6 0

) ( 5 1 )

(4

2 ) (

3 3 )

0

0 0 0

(6 0

) ( 5 1 )

(4

2 ) (3

3 )



























出現了一個 Sylvester 矩陣的結構.

令 fn(t) =

n k=0

(n + k n− k )

tk. 這個函數和 Chebychev 第二類多項式有以下關聯

fn(t) = (−1)nU2n (i√

t 2

)

這可以由帶入驗證得知, Chebychev 第二類多項式為 U2n(t) =

n

(−1)n−k (n + k

n− k )

(2t)2k.

參考文獻

相關文件