| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 470 人关注过本帖
标题:[求助][算法]巧移黑白子问题!
收藏  订阅  推荐  打印 
aipb2007
Rank: 12Rank: 12Rank: 12
来自:CQU
等级:贵宾
威望:40
帖子:2881
积分:29414
注册:2007-3-18
[求助][算法]巧移黑白子问题!

开始时,把n个黑子与n个白子排成一行:**..*OO..O(*:黑 O白)
经过n次移动,2n个子交错排列 :*O*O*O*O*O..或者O*O*O*O*O*..


移动规则:
1. 每次只能将相邻的(中间有空格的两粒棋子视为不相邻)两粒棋子同时移动到与某
棋子相邻的同一行的空位处,在移动过程中不许交换被移动的两粒棋子的左右顺序。
2. 与这一行棋子的内部空格相邻的任何棋子不许移动。
3. 在每一次移动结束后,这一行棋子的内部最多允许出现两个空格,且两个空格必
须连续。
4. 最左边的两粒棋子不许向左移动,最右边的两粒棋子不许向右移动。
注意,第n次移动结束后,连续排列的2 n粒黑白相间的棋子内部不能有空格。
下面是n =3时,移动棋子的演示过程:

开始: ***OOO
t1 : *OOO**
t2 : *OO *O*
t3 : O*O*O*

求助:n = 4的移动过程,还有n为任意正整数时的方法。


搜索更多相关主题的帖子: 黑白子  棋子  算法  空格  相邻  
2007-8-5 14:58
leng
Rank: 1
等级:新手上路
帖子:25
积分:350
注册:2007-6-27

0000****
00****00
00***0* 0
0 **0*0*0
*0*0*0*0

2007-8-6 22:01
leng
Rank: 1
等级:新手上路
帖子:25
积分:350
注册:2007-6-27

其他的不会了 嘿嘿

2007-8-6 22:02
maoguoqing
Rank: 12Rank: 12Rank: 12
来自:重庆
等级:贵宾
威望:26
帖子:2939
积分:29771
注册:2005-12-5

****0000
*** 000*0
***000 *0 回到3的情况 递归

*****00000
**** 0000*0
****0000 *0回到4的情况 递归

天行健,君子以自强不息!!
2007-8-6 22:15
aipb2007
Rank: 12Rank: 12Rank: 12
来自:CQU
等级:贵宾
威望:40
帖子:2881
积分:29414
注册:2007-3-18

2楼似乎没明白移动规则。

楼上的,我在想想,直接按你的来好象还是有个问题,不过是种思考的途径。

[此贴子已经被作者于2007-8-7 10:22:14编辑过]


Fight  to win  or  die...
2007-8-7 09:57
maoguoqing
Rank: 12Rank: 12Rank: 12
来自:重庆
等级:贵宾
威望:26
帖子:2939
积分:29771
注册:2005-12-5

当然,你真正写程序的时候还是不用递归的好,这个程序我初中的时候写过,

开始用递归,效率不高。后来就按那种方法直接一步一步的循环移动做的

不过现在处理器快,内存大,应该也没什么了。。


天行健,君子以自强不息!!
2007-8-7 13:29
aipb2007
Rank: 12Rank: 12Rank: 12
来自:CQU
等级:贵宾
威望:40
帖子:2881
积分:29414
注册:2007-3-18

继续顶

Fight  to win  or  die...
2007-8-9 11:20
blueboy82006
Rank: 12Rank: 12Rank: 12
来自:幻想世界
等级:版主
威望:16
帖子:1212
积分:12084
注册:2007-7-23

以下是引用maoguoqing在2007-8-7 13:29:15的发言:

当然,你真正写程序的时候还是不用递归的好,这个程序我初中的时候写过

开始用递归,效率不高。后来就按那种方法直接一步一步的循环移动做的

不过现在处理器快,内存大,应该也没什么了。。

佩服!


闭关修炼中!......
2007-8-9 13:51
slblake
Rank: 1
等级:新手上路
帖子:13
积分:232
注册:2006-7-24

*** 000*0如何变化到
***000 *0
虚心求教斑竹!

2007-8-10 19:49
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

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