作业帮 > 数学 > 作业

求助一道算法题!2、有三个白子和三个黑子如下图布置:○○○ ●●●用最少的步数将上图中白子和黑子的位置进行交换:●●●

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/06/29 21:51:21
求助一道算法题!
2、有三个白子和三个黑子如下图布置:
○○○ ●●●
用最少的步数将上图中白子和黑子的位置进行交换:
●●● ○○○
规则是:
(1)一次只能移动一个棋子;
(2)棋子可以向空格中移动,也可以跳过一个对方的棋子进入空格,但不能向后跳,也不能跳过两个子.
(本题共60分,要求1占30分,要求2占30分)
要求:
(1)分析问题,找出规律,总结出规则和算法,并描述你的算法设计思想.
求助一道算法题!2、有三个白子和三个黑子如下图布置:○○○ ●●●用最少的步数将上图中白子和黑子的位置进行交换:●●●
计算机解决胜这类问题的关键是要找出问题的规律,或者说是要制定一套计算机行动的规则.分析本题,先用人来解决问题,可总结出以下规则:
(1) 黑子向左跳过白子落入空格,转(5)
(2) 白子向右跳过黑子落入空格,转(5)
(3) 黑子向左移动一格落入空格(但不应产生棋子阻塞现象),转(5)
(4) 白子向右移动一格落入空格(但不应产生棋子阻塞现萌),转(5)
(5) 判断游戏是否结束,若没有结束,则转(1)继续.
所谓的“阻塞”现象就是:在移动棋子的过程中,两个尚未到位的同色棋子连接在一起,使棋盘中的其它棋子无法继续移动.例如按下列方法移动棋子:
0
○ ○ ○ .● ● ●
1 ○ ○ .○ ● ● ●
2 △ ○ ○ ● ○ .● ●
3
○ ○ ● .○ ● ●
4 两个●连在一起产生阻塞
○ ○ ● ● ○ .●
或4 两个白连在一起产生阻塞
○ .● ○ ○ ● ●
产生阻塞的现象的原因是在第2步(△状态)时,棋子○不能向右移动,只能将●向左移动.
总结产生阻塞的原因,当棋盘出现“黑、白、空、黑”或“白、空、黑、白”状态时,不能向左或向右移动中间的棋子,只移动两边的棋子.
按照上述规则,可以保证在移动棋子的过程中,不会出现棋子无法移动的现象,且可以用最少的步数完成白子和黑子的位置交换.
求助一道算法题!2、有三个白子和三个黑子如下图布置:○○○ ●●●用最少的步数将上图中白子和黑子的位置进行交换:●●● 有一堆围棋子,其中黑子和白子个数比是4比3,从中取出91枚棋子,黑子与白子个数的比是8比5,而剩下的棋子中黑子和白子个数 有黑白棋子一堆,其中黑子个数是白子个数的2倍,如果从这堆棋子中每次同时取出4个黑子和3个白子,那么取几次后,白子剩下一个 有黑、白棋子一堆,其中黑子个数是白子个数的2倍.如果从这堆棋子中每次同时取出4个黑子和3个白子,那么取几次后,白子剩下1 有一堆围棋子,其中黑子个数是白子的2倍,现在从这堆棋子中每次取出5枚黑子和3枚白子,取了若干次以后,白子全部取尽了,而黑 甲、乙两堆棋子中都有白子和黑子.甲堆中白子与黑子的颗数比是2:1,乙堆中白子与黑子的颗数比是4:7.如果从乙堆拿出3颗黑 有三堆围棋子,每堆80枚.第一堆中的白子和第二堆中的黑子一样多,第三堆中白子枚数是黑子的2/3 有一堆围棋,黑色是白子的2/3,现在取出12粒黑子,添上18粒白子后,黑子的粒数是白子的5/12,现在黑子, 有一堆围棋子,黑子是白子的2/3.现在取出12粒黑子,添上18粒白子后,黑子是白子的 盒子里有黑白棋子共80颗.小明从盒子里取岀黑子的1/7和20颗白子后,黑子的颗数是白子的2倍,原有黑子多少颗 2.有一堆棋子,黑子是白子的2/3,现在取走12粒黑子,添上18粒白子后,黑子是白子的5/12,现在白子、黑子各有多少粒 有一堆围棋子,黑子是白子的2/3,现在取走12粒黑子,填上18粒白子后,黑子是白子的5/12,现在白子、黑子各有多少粒?