• <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, 評(píng)論 - 41, 引用 - 0
            數(shù)據(jù)加載中……

            拼圖游戲

             

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

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

            1

            3

            2

            6


            5

            4

            7

            8

            1

            要還原成圖2

            1

            2

            3

            4

            5

            6

            7

            8


            2

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

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

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

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

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

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

                  如果證明了拼圖只有兩組等價(jià)類(lèi),從必要性的證明過(guò)程可知,奇性圖形是一組等價(jià)類(lèi),偶性是一組。從而證明了充分性。

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

                  引理1任何一個(gè)1N的排列M步等價(jià)于1 2 ... N-M...)。括號(hào)里是N-M+1N某個(gè)排列

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

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

            1元素的位置記為i

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

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

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

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


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

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

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

            1

            2

            4

            3

            5


            3

            展開(kāi)成12453

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

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

            例如:3的元素4向前2步移動(dòng)。可以如下操作,

            2

            4

            5

            1


            3

            4

            2


            5

            1

            4

            3

            5

            4

            1

            2

            3

            5


            6

            展開(kāi)41253。實(shí)現(xiàn)了向前2步移動(dòng)。

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

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

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

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

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

            顯然M=k+1圖形的等價(jià)類(lèi)數(shù)目為2

            充分性得證。

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

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


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

            評(píng)論

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

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

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

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

            2009-03-16 12:04 | 11

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

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

            # re: 拼圖游戲[未登錄](méi)  回復(fù)  更多評(píng)論   

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

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

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

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

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

            你這篇文章寫(xiě)的很好,受益匪淺。

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

            # re: 拼圖游戲[未登錄](méi)  回復(fù)  更多評(píng)論   

            N=M是一種平凡情況,這時(shí)N-M=0,所以N-M+1..N就是1..N,顯然它們等價(jià).@godcupid
            2011-09-21 21:23 | lemene

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            国产午夜福利精品久久2021 | 亚洲国产精品综合久久网络| 蜜臀久久99精品久久久久久小说| 久久精品无码一区二区三区日韩 | 亚洲国产成人精品女人久久久| a高清免费毛片久久| 色婷婷久久综合中文久久蜜桃av| 亚洲欧洲久久av| 久久伊人五月丁香狠狠色| 久久99九九国产免费看小说| 免费一级欧美大片久久网| 99久久综合国产精品二区| 精品久久久无码中文字幕| 狠狠久久综合| 亚洲人成网站999久久久综合| 亚洲乱码日产精品a级毛片久久| 伊人久久无码精品中文字幕| 亚洲欧美日韩精品久久亚洲区| 久久久久久久女国产乱让韩| 久久天天躁狠狠躁夜夜躁2O2O| 91精品国产高清91久久久久久| 麻豆精品久久精品色综合| 久久久久久噜噜精品免费直播| 午夜视频久久久久一区| 人妻精品久久久久中文字幕69| 久久er热视频在这里精品| 久久久99精品成人片中文字幕| 久久夜色精品国产噜噜亚洲a| 久久久一本精品99久久精品88| 嫩草影院久久99| 久久99精品久久久大学生| 国产一级做a爰片久久毛片| 久久久中文字幕日本| 久久综合给合久久国产免费| 久久这里只有精品首页| 久久综合九色综合网站| 99久久精品无码一区二区毛片 | 一级做a爰片久久毛片看看 | 久久99中文字幕久久| 久久天天躁狠狠躁夜夜avapp| 97久久久久人妻精品专区|