組合數學經典問題 鋪磚問題

2021-07-16 06:00:23 字數 2959 閱讀 5847

鋪路問題:

1、1*n長度的路的鋪磚問題

2、2*n長度的路的鋪磚問題

3、3*n長度的路的鋪磚問題

一、1*n的鋪磚問題

題目如下所示:某人要鋪1*n長度的路,有三種磚可以使用:1*1的方磚,兩個直角邊分別為1,1的直角三角磚(方磚從對角線切開得到兩塊這樣的磚,下稱小三角)以及斜邊是2的等邊直角三角磚(下稱大三角)。提問:

(1)鋪1*n長度的路一共有多少方案數;

(2)鋪1*n長度的路一共可能出現的方磚總數;

(3)鋪1*n長度的路可能出現的連續兩塊方磚的總次數。

對付這種題目的實際策略並不像它表面那樣難以捉摸,我們只要立好乙個標準的拆分方式,就可以得到很好的遞推關係。我將1*n的路分為兩個部分,如圖所示:

第乙個部分是從路的末端算起直到找到第乙個可以有垂直縫隙的位置,長度為x(表示為灰色),餘下的為第二部分。

l 第一問:

當x=1時,灰色部分公有三種方案:一塊方磚,2塊小三角(擺成兩種方向),如圖所示:

根據最後一部分的豎線位置在哪,確定遞推關係式。

那麼,如果前長度為n-1的路方案數是an-1,此時總的方案數是3an-1。

當x=2時,灰色部分只可能有兩種方案,分別是大小三角的擺成兩個方向的組合(注意不能有可以垂直縫隙的部分)

如果前面長度為n-2的路的方案數是an-2,此時總的方案數是2an-2。

同理,當x=3的時候,灰色部分仍然只能是大小三角用兩種方向擺放的組合。總的方案數只能是2an-3。如下的依次類推,則得到:

an=3an-1+2an-2+2an-3+2an-4+……+2a1 ①

同理an-1=3an-2+2an-3+2an-4+2an-5+……+2a1 ②

① - ② 就得到了第一問的遞推公式:

an - 4an-1 +a n-2 = 0。 ③

接下來的問題就是數數和解方程了,不再贅述。

l 第二問:

解決第二問和第一問的思想是完全一樣的。只不過要用到第一問的概念和結果。設總體的方塊數是bn。

當x=1時,就有兩種子情況,即灰色部分是不是方塊。:

1. 如果是方塊的話,灰色部分的方塊數就是an-1(記住前n-1長度的路有an-1種方案,每一種方案都要算一次增加的方案數)。再加上前邊的方塊數bn-1就是an-1 + bn-1塊方塊

2. 如果不是方塊,則灰色部分增加的就是兩倍的原有方塊數(因為此時灰色部分有2種方案),所以方塊數就是2 bn-1

當x=2時,由於灰色部分不可能再有方塊了,所以增加的方塊數只能是2bn-2。

在x=2 、3、……的時候,道理也同x=2的情況,所以增加的方塊數始終是2b n-x。

那麼把上邊所有的情況都算起來,就得到了關係式:

bn=3bn-1+an-1+2bn-2+2bn-3+……+2b1 ④

那麼就有:

bn-1=3bn-2+an-2+2bn-3+2bn-4+…+2b1 ⑤

通過上面兩個式子相減就得到了第二問得遞推關係式:

bn – 4b n-1 + bn-2 = an-1 - an-2 ⑥

有人算到這裡的時候還要在進行加減,試圖把a銷掉,然後再得出特徵方程,其實這是沒有必要的。考慮③和⑥的關係就應到立刻得出特徵方程:

(x2 - 4x + 1)2 = 0

這個方程的根都是第一問方程根的重根而已。如果你把a銷掉了,此時就有要花很大力氣重新將多項式分解成現在的樣子,費力不討好而已。

考慮到會有很多無理數參加運算,比較複雜。所以,接下來我將就這個問題,解釋一下如何快速解待定係數的4元一次方程。

首先,上邊特徵方程的根是兩個2 + 3^0.5和2 - 3^0.5 (下文對開二次方進行簡寫,寫成2 + !3和2 - !3)。然後通過數數得到b1=1,b2=6,b3=31,最後通過反向計算得到b0=1 (記住b0永遠都是通過遞推公式反推出來的,而不是數出來的,所以b0很可能不是乙個有意義的數字,甚至可以是個分數或者負數)。根據以上事實可以得到最終通項公式的形式:

(a+bn)x^n + (c+dn)y^n

其中x和y為特徵根。a、b、c、d為待定係數,代入以上所有的值可以得到方程:

a + c = 1

(a + b)(2 + !3) + (c + d)(2 - !3) = 1

(a + 2b)(7 + 4!3) + (c + 2d)(7 – 4!3) = 6

(a + 3b)(26 + 15!3) + (c + 3d)(26 – 15!3) = 31

經過實踐我們發現abcd都可能是很複雜的數(即包含有理部分又包含無理部分),單獨解非常容易出錯,但是a+c、a-c、b+d、b-d的形式卻非常簡單(其中a+c就是b0)。我們將上面的方程組重組成:

a + c = 1

2(a+c) + !3(a-c) + 2(b+d) + !3(b-d) = 1

7(a+c) + 4!3(a-c) + 14(b+d)+8!3(b-d) = 6

26(a+c) + 15!3(a-c) + 78(b+d)+45!3(b-d) = 31

這樣重組了之後,就可以很輕鬆的利用加減法得到

a+c=1 a-c=-4/(3!3) b+d=-5/6 b-d=2/!3

之後再計算a,b,c,d就顯得相當輕鬆了。

至於第三問,相信聰明的你一定可以利用已經學習到的技術輕鬆解出,不是麼?

同樣因為類似的這種問題,可以求得所有的方案需要的方磚數目、小三角數目、大三角磚數目。

二、2*n的鋪磚問題

重點仍然是遞推關係式的推導:

(1)經驗推導法:

求出a1、a2、a3、a4的數目,通過比對,確定遞推關係式,這種方法的好處是比較顯而易見,容易得出正確的遞推關係,但是前提必須是你手算出的a每項必須是正確的。

(2)形式推導法:

根據最後一塊磚的形狀或者擺放,最後兩塊磚的形狀或擺放確定最後的遞推公式。

例2:2*n的路徑鋪磚問題,可以鋪小三角磚(直角邊為1),大三角磚(斜邊為2,直角邊為√2)、方磚1*1,問:

(1)總方案數

(2)總方案的總磚數、小三角磚數、大三角磚數、方磚數。

未完待續。。。。

組合數學問題

監獄有連續編號為1.n的n個房間,每個房間關押乙個犯人,有m種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄 輸入兩個整數m,n.1 m 10 8,1 n 10 12 可能越獄的狀態數,模100003取餘 6種狀態為 000 001 011 ...

組合數學 購票問題

購票問題 題目大意 一張票50元,有n個帶著50元的人和n個帶著100元的人,請問總共有多少種排隊方法使得不會出現購票找不回錢的尷尬局面?輸入樣例 2 輸出樣例 2 這是一類非常有代表性的問題,下面將介紹該問題的5種解法 number 5 暴力列舉 很顯然,要使帶著100元的購票那麼就需要50的去找...

組合數學 36軍官問題

據說普魯士的腓特列大帝曾組成一支儀仗隊,儀仗隊共有36名軍官,來自6支部隊,每支部隊中,上校 中校 少校 上尉 中尉 少尉各一名。他希望這36名軍官排成6 6的方陣,方陣的每一行,每一列的6名軍官來自不同的部隊並且軍銜各不相同。令他惱火的是,無論怎麼絞盡腦汁也排不成。後來,他去求教瑞士著名的大數學家...