【一个小问题】滑块拼图

只看楼主收藏回复

玩过滑块拼图吗?这里有一个关于滑块拼图的问题。


来自Android客户端1楼2017-12-17 01:44回复
    像镇楼图,就是一种3*3的、有8块滑块的滑块拼图。
    每一块滑块都可以且只可以进行上下左右的滑动。整块拼图只有一个空位(比如镇楼图右下),与空位相邻的滑块可以滑入空位,用它原本的位置给其他滑块提供空间。
    镇楼图是一幅拼好了的拼图。而这里将展示它被打乱的一种情况。玩滑块拼图的目的,与其他拼图一样,就是将打乱的状态还原为初始状态(把下图按照规则还原为镇楼图)。


    来自Android客户端3楼2017-12-17 01:52
    回复
      2026-03-14 06:58:02
      广告
      不感兴趣
      开通SVIP免广告
      相信完成还原对于众多吧友不是难事。即便是不上手而只在脑中考虑,也有人能完成这个挑战。
      要是这个帖子要提出的问题就是还原拼图,未免也太无聊了。
      那么我再给出另一个打乱的状态,试试,还能还原吗?


      来自Android客户端4楼2017-12-17 01:56
      回复
        ——你以为不能吗?不,这也是可以还原的因为这是我直接找个游戏截图的,懒得P一个不能还原的状态
        但是,这就触及到了这个帖子真正要提出的问题:
        给定一个3*3的滑块拼图初态,再给出一个打乱态,有什么方法在不进行还原的情况下,判断这种打乱态能否被还原?
        (是否存在不能被还原的打乱态?当然存在。比如说,我将镇楼图左上的滑块与中上的滑块交换,从这个状态开始进行符合规则的游玩,拼图是永远不可能复原的。)


        来自Android客户端5楼2017-12-17 02:01
        收起回复
          进一步的,如果是5*5的拼图呢?
          如果是m*n的拼图呢?(m、n为任意正整数)
          另外,也欢迎提出这种拼图的通解。


          来自Android客户端7楼2017-12-17 02:06
          收起回复
            我初中偶然玩这个时想过这件事


            来自Android客户端8楼2017-12-17 08:03
            回复
              我认为是完全可以拼上的,道理有几个每一个小拼图都是独立的个体位置不固定,即使随机到无法拼合的状态也是可逆的,所以我认为应该可以求出最少的步骤最短时间得出的那一个,一打乱的1到8为例可编程实现


              来自Android客户端9楼2017-12-17 08:57
              回复
                肯定能还原,如果不能还原,那楼主的后面几个图就不成立了。


                10楼2017-12-17 09:29
                回复
                  2026-03-14 06:52:02
                  广告
                  不感兴趣
                  开通SVIP免广告
                  3*3一次完整移动(位置交换)最少要涉及三个块 你直接两个交换当还原不了了


                  来自Android客户端11楼2017-12-17 10:31
                  收起回复
                    楼主的问题是,是否存在一个图像无法还原?如果是,那么满足什么条件?


                    来自Android客户端12楼2017-12-17 12:23
                    回复
                      直接上结论。当2*2时,显然存在一个图像,使得无论如何均无法还原


                      来自Android客户端13楼2017-12-17 12:24
                      回复
                        3*3,是否存在一个图像无论如何均无法移动?
                        目测是存在的。


                        来自Android客户端14楼2017-12-17 12:26
                        回复
                          至于背后的原理,没看出来


                          来自Android客户端15楼2017-12-17 12:28
                          回复
                            不过讲道理,这个题目给我一下午,我有90的把握搞定


                            来自Android客户端16楼2017-12-17 12:33
                            收起回复
                              2026-03-14 06:46:02
                              广告
                              不感兴趣
                              开通SVIP免广告
                              对于任意m*n拼图,无法复原的情况当然是必定存在的。就像11L@莜隼 说的那样。
                              而5L我也给出了3*3无法复原的一种情况。
                              本帖的问题就是:
                              对于任意的m*n拼图的一种状态,如何判断它是否能被复原?


                              来自Android客户端17楼2017-12-17 13:43
                              回复