| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 1255 人关注过本帖
标题:出个稍微有点难度的问题——重排九宫
收藏  订阅  推荐  打印 
zbqf109
Rank: 3Rank: 3
等级:中级会员
帖子:289
积分:3134
注册:2006-12-31
出个稍微有点难度的问题——重排九宫

问题:在3×3的方格棋盘上放置分别标有数字1~8的8个棋子,初始状态为左图,目标状态为右图:

2    8    3                1    2    3
1          4                8           4
7    6    5                7    6    5

横竖的表格线这里就不画了。可使用的操作有:
                空格左、右、上、下移动。(即只允许位于空格左、右、上、下的临近棋子移入空格。)

要求:编写程序寻找从初始状态到目标状态的路径。
搜索更多相关主题的帖子: 九宫  难度  
2007-12-11 18:38
永夜的极光
Rank: 12Rank: 12Rank: 12
等级:版主
威望:26
帖子:2710
积分:35264
注册:2007-10-9

printf("8 2 1 8");

每个数字表示哪一个数字移入空格

从BFS(Breadth First Study)到DFS(Depth First Study)
学习VIM中,欢迎访问我的blog  http://hi.baidu.com/newkedison
严重鄙视一切把论坛当成作业生成器和人肉搜索引擎的人
2007-12-11 19:24
StarWing83
Rank: 12Rank: 12Rank: 12
来自:湖北工业大学
等级:贵宾
威望:12
帖子:2514
积分:26568
注册:2007-11-16

啊……这个问题我的《计算机算法(C++版)》里面有啊……

专心编程………
飞燕算法初级群:3996098
我的Blog
2007-12-11 20:22
yeqishi
Rank: 2
等级:注册会员
帖子:66
积分:826
注册:2007-9-19

好像很简单!!!支持楼主,继续贴啊!!!

2007-12-12 19:42
zbqf109
Rank: 3Rank: 3
等级:中级会员
帖子:289
积分:3134
注册:2006-12-31

^_^, 没有各位想象的那么简单
1. 我给出的只是一个例子, 初始矩阵需要由用户设置或者随机生成;
2. 要让程序去计算每一步将哪个数移入空格, 而不是让你的大脑去计算.

坚决不跟用TC的人打交道!
2007-12-12 20:53
leeco
Rank: 4
等级:高级会员
威望:8
帖子:870
积分:9666
注册:2007-5-10

经典算法A*,不过BFS效率也不差多少
2007-12-12 21:29
jingru
Rank: 2
等级:注册会员
帖子:49
积分:646
注册:2006-11-16

是有难度..顶一下
2007-12-12 22:29
zbqf109
Rank: 3Rank: 3
等级:中级会员
帖子:289
积分:3134
注册:2006-12-31
回复 6# 的帖子

A*算法和宽度优先,只不过是众多有效算法中的两种,:-)
有很多很多种不同的解法

坚决不跟用TC的人打交道!
2007-12-12 22:31
leeco
Rank: 4
等级:高级会员
威望:8
帖子:870
积分:9666
注册:2007-5-10
回复 8# 的帖子

那你随便列举“很多很多”中的两种吧。
2007-12-18 18:47
zbqf109
Rank: 3Rank: 3
等级:中级会员
帖子:289
积分:3134
注册:2006-12-31
回复 9# 的帖子

与或树、遗传算法、动态规划
甚至分冶、贪心也行

坚决不跟用TC的人打交道!
2007-12-18 20:37
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.069984 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved