拼图问题

sswang 2003-12-01 11:19:16
能不能给个算法。按游戏自己完成拼图。
eg: 3 * 3 拼图,初始矩正:
0 1 2
3 4 5
6 7 8
rand 之后:
3 7 8
2 4 6
1 5 0
( 每个数字代表一张图片)
初始位置:
第 0 张图片的位置是 0, 0
第一 张图片的位置是 0,1
。。。
第 8 张图片的位置是 2,2
游戏开始后,给个算法按图片移到自己的位置。
即演示拼图的过程。
...全文
139 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wbel 2003-12-02
  • 打赏
  • 举报
回复
关注!!
llrock 2003-12-02
  • 打赏
  • 举报
回复
打乱的过程模仿移动,记录下来。不过回放肯定不是最简解法。
zzwu 2003-12-01
  • 打赏
  • 举报
回复
我从前编过这样的游戏软件,供人们手工来玩,其中有这样一段说明:
....
这种游戏已经历了许多世纪,其中蕴含着深刻的数学问题,历史上许多大数学家也都对它有过兴趣。实际的游戏可以为N*N个方格矩阵,其中除右下一格为空外,其余都被标有数字1到N*N-1的方块随机布着。游戏时,要不断移动板上的数字方块,直到将它们整理成由小到大的自然顺序。移动的步数要愈少愈好, 完成的时间自然也要愈短愈好。
这里要求每一步移动都是空格周围某一方块向空格处移动,与空格不相邻的方块则不能移。因受这一条件的制约,有的初始布局不可能整理成递增的自然顺序。究竟哪一类初始布局能整理成自然顺序,哪一类布局不能整理成自然顺序呢? 这一问题早在1879年已证明了一个定理,即初始布局由自然顺序经过偶数次相邻元素(方块)交换产生的,就能整理成自然顺序;而由自然顺序经过奇数次相邻元素交换产生的布局,则不能整理成自然顺序。例如图2a那样的布局就不能整理成自然顺序,因为它可由图1a经过相邻元素1和7的一次交换产生,而图1a实验证明能整理成自然顺序,故它必定是由自然顺序经过偶数次相邻元素交换得来,由此可知图2a必须是由自然顺序经过奇数次邻元交换产生,故不能整理成自然顺序。由图2a出发,最终获得的是图2b那样的结果。
这一数学定理告戒人们,存在不能整理成自然顺序的布局! 对于这种布局就不要再去试,否则就会浪费时间,是枉费心机。但是,一种初始布局给出后,怎样知道它是由自然顺序经过几次相邻元素交换得到? 能整理成自然顺序的布局,又如何确定最少要几步? 步骤又怎样? 不能整理成自然顺序的布局,怎样判定它不能?等,都不是显而易见容易回答的问题,所以不能以为1879的定理已解决了一切,从此游戏就没有意义了。事实上,现代数学的特点就是不但要解决能行性(即算法的存在不存在)问题,还要在"能行"时,找出具体算法,并考虑算法的复杂性,最后在计算机上实现它(即编制出程序),用它来解决生产实践中遇到的各种实际问题。对于从本游戏中发现的问题我们也应这样做,而且也能够这样做,这就是"平面调度"问题,研究它们不仅绕有兴趣,而且也有广泛的实用背景。



sswang 2003-12-01
  • 打赏
  • 举报
回复
如果随机产生,那么游戏玩家不可能赢?
zzwu 2003-12-01
  • 打赏
  • 举报
回复
如果新矩阵
3 7 8
2 4 6
1 5 0
是随机产生的,则有一半几率是无法从原始矩阵
0 1 2
3 4 5
6 7 8
通过单元移动来达到目标。
stephen85 2003-12-01
  • 打赏
  • 举报
回复
关注!!
sswang 2003-12-01
  • 打赏
  • 举报
回复
初始:
_____________________
| 0 | 1 | 2 |
|_____|______|______|
| 3 | 4 | 5 |
|_____|______|______|
| 6 | 7 | S |
|_____|______|______|
如果将下面矩阵变为初始:
_____________________
| 0 | 1 | 2 |
|_____|______|______|
| 3 | 4 | 7 |
|_____|______|______|
| 6 | 5 | S |
|_____|______|______|

可不可能?
偶数次相邻元素(方块)交换产生?
能不能给出一点步骤。
S 代表 空位置

33,029

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧