• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 51, 文章 - 1, 評論 - 41, 引用 - 0
            數(shù)據(jù)加載中……

            拼圖游戲

             

                  本文討論如何判斷拼圖游戲中圖形是否可以還原。

            1是一個3X3的數(shù)字拼圖

            1

            3

            2

            6


            5

            4

            7

            8

            1

            要還原成圖2

            1

            2

            3

            4

            5

            6

            7

            8


            2

                  將問題一般化,在M*N的方格里有M*N-1個不同元素和一個空元素,只有空元素可以與上下左右相鄰的元素交換位置。M*N方格中M*N-1個元素和一個空元素的位置確定一個圖形。拼圖游戲的問題是:一個圖形經(jīng)過一連串的交換能否得到另一個圖形,如何得到。從交換方式的可逆性看出這種關(guān)系滿足等價三性質(zhì),如果圖形A通過交換變成圖形B我們則稱它們是等價的。把M*N-1個元素用1M*N-1編號,空元素編號0。然后展成一個排列。每個圖形對應(yīng)一個排列。確定了展開方式,圖形和排列是一一對應(yīng)的。這里用到的展開方式是行優(yōu)先的順序(其他方式展開也能到相應(yīng)的結(jié)果)。將例1的兩個圖形展開有:圖1對應(yīng)1 3 2 6 0 5 4 7 8,圖2對應(yīng)1 2 3 4 5 6 7 8 0。

                  定理1圖形A與圖形B等價的充要條件圖形A的排列的逆序數(shù)加上0元素行號和列號的奇偶性等于圖形B的排列的逆序數(shù)加上0元素行號和列號的奇偶性。為方便表述,把圖形排列的逆序數(shù)加上0元素行號和列號的奇偶性稱為圖形的奇偶性。

                  先看定理1如何起作用,圖1:展開的排列 1 3 2 6 0 5 4 7 8,它的逆序數(shù)為80元素行號為2,列號為2。逆序數(shù)加行號,列號的奇偶性為偶。圖2:展開的排列 1 2 3 4 5 6 7 8 0,它的逆序數(shù)為80元素行號為3,列號為3。逆序數(shù)加行號,列號的奇偶性為偶。兩個圖形的奇偶性相同,根據(jù)定理1判斷它們等價。

                  首先證明必要性,即如果圖形A圖形B等價,則圖形A的奇偶性等于圖形B奇偶性。

                          0元素和某個元素交換位置,則排列的逆序數(shù)的奇偶性就改變一次。交換后0元素的行號或者列號會加1或減1,即行號,列號之和的奇偶性也改變一次。這說明拼圖的交換方式不改變圖形的奇偶性,也說明拼圖中至少有兩組等價類,奇偶性不同的圖形不等價。

                  下面證明充分性,如果圖形A的奇偶性等于圖形B的奇偶性,則圖形AB等價

                  如果證明了拼圖只有兩組等價類,從必要性的證明過程可知,奇性圖形是一組等價類,偶性是一組。從而證明了充分性。

                  先考慮一般的排列1 2 3 ... N。某個元素連續(xù)與后面M相鄰的元素交換位置,稱為向后M步移動。如排列:1 2 3 4 5 6。元素2向后3步移動,排列變成1 3 4 5 2 6。同樣的方式定義向前M步移動。如果排列A能夠通過有限向前M步移動和向后M步移動變成排列B,稱排列A與排列B M步等價。容易看出這也是等價關(guān)系。

                  引理1任何一個1N的排列M步等價于1 2 ... N-M...)。括號里是N-M+1N某個排列。

            證明:如果N=M,這顯然成立。

            假設(shè)N=k時成立,下面證明k+1的情況。

            1元素的位置記為i

            情況1:假設(shè)i=1,顯然,余下的元素減1,就變成N=k的境況,得證。

            情況2:如果1<i<=M,則元素1前面的元素向后M移動,變?yōu)榍闆r1。

            情況3如果i>M,則元素1有限次向前M步移動,使i1<=i<=M,可變成情況12

            從而得證。
            當(dāng)
            M=2時,只有兩組等價類。由于移動不改變排列的奇偶性,從而奇排列是一組等價類,偶排列是一組等價類。


            考慮N*M拼圖
            當(dāng)
            N=M=2,窮舉法可證明只有兩組等價類。

            當(dāng)N,M不同時為2時,設(shè)N不等于2(如果N等于2M不等于2可顛倒行列討論)。

            只考慮第二行最后一個元素是空元素的情形,因?yàn)榭赵卦谄渌?/span>位置總可以等價某個空元素在第二行最后一個元素的圖形。不考慮空元素以之字形方式展開圖形,即第一行最后一個數(shù)字和第二行倒數(shù)第二個數(shù)字相連。如:

            1

            2

            4

            3

            5


            3

            展開成1,24,5,3

            下面證明兩行拼圖的交換方式可以實(shí)現(xiàn)排列的向前2向后2移動。

            要實(shí)現(xiàn)元素a向前2步移動,則可順著展開的方式循環(huán)移動拼圖,使a在第一行第二列的位置,使空元素在第二行第二列的位置,此時可把元素i可與空元素對換。然后再沿著展開的順序還原拼圖。

            例如:3的元素4向前2步移動??梢匀缦虏僮?,

            2

            4

            5

            1


            3

            4

            2


            5

            1

            4

            3

            5

            4

            1

            2

            3

            5


            6

            展開4,1,25,3。實(shí)現(xiàn)了向前2步移動。

            使i在第二行第二列的位置,使空元素在第一行第二列的位置可以實(shí)現(xiàn)向后2步移動。根據(jù)引理1及,兩行拼圖可以分成兩組等價類。

            假設(shè)M=k圖形可以分成兩組等價類,下面證明M=k+1,

            只需要證明任何M=k+1圖形總等價于第一行元素為1 2 ... N的某圖形即可。

            如果這N個元素都在第一行,把空元素移到第二行,從上面的證明可知,交換兩個不同的非空元素,圖形的奇偶性改變,屬于不同的等價類。N大于2,第二行就有兩個非空元素可供交換。所以兩行圖形可以等價與第一行為1 2 ... N的某個圖形。

            如果1N的某個a元素不在第一行,設(shè)它在第i行。把空元素移動到i行,這樣第i行和第i-1行可以看成M=2的圖形??梢园?/span>a移動到第i-1行,并保證第i行和i-1行中1N的元素的行號不增加。有限步移動可以使1N元素全部在第一行。

            顯然M=k+1圖形的等價類數(shù)目為2。

            充分性得證。

                  拼圖游戲的隨機(jī)離散中加入定理1的判斷可以保證游戲有意義,不會出現(xiàn)無解的情況。

            附:     windows控制臺下的數(shù)字拼圖游戲,用dev c++編譯通過。


            posted on 2007-10-04 12:34 lemene 閱讀(3708) 評論(6)  編輯 收藏 引用

            評論

            # re: 拼圖游戲  回復(fù)  更多評論   

            123456780與123450786顯然可以互變,它們的逆序數(shù),0元素行號和列號分別是如何計(jì)算的?
            2009-03-16 12:01 | 11

            # re: 拼圖游戲  回復(fù)  更多評論   

            123456780的逆序數(shù)是8,0元素行號、列號分別是3,加起來和是14。
            123450786的逆序數(shù)是6,0元素行號是2、列號是3,加起來和是15。
            這樣算對不對?如果不對,應(yīng)怎樣計(jì)算?

            2009-03-16 12:04 | 11

            # re: 拼圖游戲  回復(fù)  更多評論   

            剛才算錯了一個地方,123450786的逆序數(shù)是6,0元素行號是2、列號是3,加起來和是11。
            2009-03-16 12:05 | 11

            # re: 拼圖游戲[未登錄]  回復(fù)  更多評論   

            123456780 的逆序數(shù)8,行號3 列號3 相加 14
            123450786 的逆序數(shù)7,行號2 列號3 相加 14

            123450786的逆序數(shù)為5+2,即0和6的逆序數(shù)。
            2009-03-18 14:31 | lemene

            # re: 拼圖游戲  回復(fù)  更多評論   

            為什么N=M就顯然成立呢?
            12345和12354好像并不2步等價啊。

            我復(fù)制粘貼了你的文章到我的博客,當(dāng)然說明了出處。

            你這篇文章寫的很好,受益匪淺。

            看這最后一次評論都是09年的,我這個評論也不知道你能不能看得到
            2011-09-05 21:25 | godcupid

            # re: 拼圖游戲[未登錄]  回復(fù)  更多評論   

            N=M是一種平凡情況,這時N-M=0,所以N-M+1..N就是1..N,顯然它們等價.@godcupid
            2011-09-21 21:23 | lemene
            久久亚洲私人国产精品| 色综合久久久久久久久五月| 精品久久久无码人妻中文字幕| 国产精品美女久久久网AV| 国产成人精品免费久久久久| 精品久久久久久中文字幕人妻最新 | 成人午夜精品无码区久久| 久久婷婷五月综合成人D啪| 久久久久高潮综合影院| 色综合久久综合中文综合网| 久久国产精品无码HDAV| 国产一区二区三区久久| 精品久久久久久国产牛牛app| 精品无码人妻久久久久久| 思思久久99热免费精品6| 久久久无码精品亚洲日韩京东传媒 | 日日噜噜夜夜狠狠久久丁香五月| 日本欧美久久久久免费播放网| 久久99精品久久久久子伦| 伊人久久免费视频| 亚洲一区精品伊人久久伊人| 少妇高潮惨叫久久久久久| 99久久精品免费看国产| 婷婷久久五月天| 99久久超碰中文字幕伊人| 久久99精品久久久久久噜噜 | 久久久久免费视频| 无码人妻精品一区二区三区久久 | .精品久久久麻豆国产精品| 久久久久婷婷| 丰满少妇人妻久久久久久| 久久午夜无码鲁丝片午夜精品| 老男人久久青草av高清| 国产午夜精品理论片久久影视| 色99久久久久高潮综合影院| 国产韩国精品一区二区三区久久| 久久久久无码中| 久久婷婷久久一区二区三区| 精品国产乱码久久久久久人妻| 久久精品国产精品国产精品污| 久久精品无码一区二区WWW|