小規模 b牌棋盤完美覆蓋數 整理

2021-09-05 20:13:27 字數 1555 閱讀 6253

(小規模)b牌棋盤完美覆蓋數

農夫三拳@seu([email protected])

考慮乙個普通的西洋棋棋盤,它被分成8*8(8行8列)的64個正方形。設有形狀一樣的多公尺諾骨牌,每張牌恰好覆蓋棋盤上相鄰的兩個方格(即1*2的骨牌)。那麼能否把32個這樣的1*2骨牌放到棋盤上,使得任何兩張牌均不重疊,每張多公尺諾骨牌覆蓋兩個方格,並且棋盤上所有的方格都被覆蓋住?我們把這樣一種排列稱為被多公尺諾骨牌的完美覆蓋。這是乙個簡單的排列問題,人們能夠很快構造許多不同的完美覆蓋。但是計算不同的完美覆蓋的總數就不是一件容易的事了,不過,這還是有可能做到的。這個數由m.e.fischer在其一篇名為statistical mechanics of dimers on a plane lattice的**中計算出了不同的完美覆蓋總數為: 12988816 = 24 * (901)2 。而後fischer得出了更一般的公式用來求解1*2骨牌覆蓋m*n(m,n至少乙個為偶數)方格的公式,

分析完上面的問題,大家自然會有乙個問題,對於一般的1*b的方格來覆蓋m*n的棋盤,完美覆蓋數又是多少呢?這裡,我們稱1*b的方格為b-牌(b-omino)。乙個已知的事實是,如果乙個m*n的棋盤擁有b牌的完美覆蓋,那麼b是m的乙個因子或者b是n的乙個因子。本文將給出01)b=1 的情況

顯然,覆蓋方法數只有1種

2)b=2的情況

前面提到了fischer的三角公式,但是有個問題,如果結果很大的時候,需要給出取模解的時候,用公式就顯得力不從心了。

i)而我們發現當n=2的時候,結果數剛好是fibonacci數列。對於m較大可以用矩陣冪演算法解決。

ii)n=3的時候可以推倒出遞推式

以及邊界條件

其中am代表在左上角將第一塊骨牌橫著放的總方案數,bm代表在左上角豎著放第一塊骨牌的方案數。

不難得出am的表示式,繼而使用矩陣冪求出大資料求模的解。周源在wc08的講稿中給出了am和bm的生成函式:

iii) n>3的情況。其實我們注意到b=2,應該能夠考慮到二進位制,繼而考慮到狀態壓縮動態規劃。首先dfs出相鄰兩行的狀態轉移方式sfrom->sto,繼而用動態規劃轉移得到每行的方案數hs。不難看出時間複雜度為o(m*2n)。菜魚同學利用特徵方程計算了每行的方案數hs

=n。因此乙個更加精確的時間複雜度為o(m*0.85*2.414n), 不難看出這裡n的範圍比較小,一般小於12。

3) b=3的情況或者b=4的情況

均可以利用上述推倒遞推關係的方法求解。

最後推薦幾個相關的資料供讀者參考:

馮躍峰. 棋盤上的組合數學.[m]. 上海:上海教育出版社,1998.

沈曉斌 棋盤的1*3骨牌骨牌覆蓋的技術.[j]. 泉州師專學報, 1997,(2)

沈曉斌等1*4格牌覆蓋棋盤的計數.[j]. 泉州師專學報, 2000,(2)

b牌棋盤完美覆蓋

考慮乙個普通的西洋棋棋盤,它被分成8 8 8行8列 的64個正方形。設有形狀一樣的多公尺諾骨牌,每張牌恰好覆蓋棋盤上相鄰的兩個方格 即1 2的骨牌 那麼能否把32個這樣的1 2骨牌放到棋盤上,使得任何兩張牌均不重疊,每張多公尺諾骨牌覆蓋兩個方格,並且棋盤上所有的方格都被覆蓋住?我們把這樣一種排列稱為...

如何做小規模的外包

最近和乙個台灣朋友配合做台灣本地的軟體業務到大陸開發,積累的一些從無到有的經驗,寫在這裡 大家分享一下 1 彼此信任 我和我的朋友認識有將近1年,但從沒有見過面,雙方平時溝通是msn,email,最近skype用的多,很急的時候也打 很少 但就專案合作來說,雙方都很坦誠,有什麼說什麼,這樣,才能降低...

小規模kvm宿主機管理 webvirtmgr安裝

1 前言 webvirtmgr是近兩年來發展較快,比較活躍,非常清新的乙個kvm管理平台,提供對宿主機和虛機的統一管理,它有別於kvm自帶的圖形管理工具 virtual machine manager 讓kvm管理變得更為視覺化,對中小型kvm應用場景帶來了更多方便。webvirtmgr採用幾乎純p...