前几天在网上闲逛看到了壹個小的 FLASH 游戏,游戏内容就是在屏幕上有六只青蛙,左边三只,右边三只,中间还有壹個空格,游戏目标就是通过有限的跳跃次数,让这六只青蛙交换彼此的位置,我试着玩了壹個,大约两三分钟就达成了目标。但是后来我又仔细想了想,三只青蛙的数据不算多,操作起来比较容易。如果不是每边三只青蛙,而是五只、七只或者N(N>=3)只呢,那如果想用最少的次数让这些青蛙交换位置,应该怎么做呢。而且我还发现如果每边的青蛙次数为偶数只时,似乎这個交换位置的问题就是无解的,这是为什么呢?在N只青蛙的情况下,最少需要多少步才能完成这個交换的工作呢?我觉得这里面肯定有什么数学规律,但是百思不得其解,所以发此帖到论坛上让大家壹起来讨论下,如果需要用算法的方式把这個问题解决,应该是什么样的呢?
请大家各抒已见,期待不同观点或者意见。
开始时候的画面:
过关之后的画面:
游戏地址在此:http://s15.photobucket.com/user/hilllynx/media/9242c12c.swf.html
规则:
(1) 用鼠标点青蛙头部向前跳;
(2) 最多每次可以前进壹步;
(3) 最多只能跳过壹個青蛙;
(4) 壹次壹步,不限颜色;
(5) 只能前进,不能后退;
(6) 按红色箭头,游戏复原;
(7) 此题肯定有解,不要怀疑。