抢30

来自计算思维百科
跳转至: 导航搜索
抢30.png

有一种叫“抢30”的游戏。游戏规则很简单,两个人轮流报数,第一个人从1开始,按顺序报数,他可以只报1,也可以报1和2。第二个人接着从第一个人报的数再报下去,但最多也只能报两个数,而且不能一个数都不报。

例如,第一个报1,第二个人可以报2,也可以报2、3;如果第一个人报了1、2,那么第二个人可以报3,也可以报3、4;接下来仍由第一个人接着报,如此轮流下去,谁先报到30谁就赢。

甲很大度,每次都让乙先报,但每次都是甲胜。乙觉得其中肯定有猫腻,于是坚持要甲先报,可每次还是甲胜。

你知道甲必胜的策略是什么吗?

解决方案-减治法

我们可以将问题分解:

如果是“抢3”的游戏,先报数的人必输无疑,因为先报的人无论是报1还是报1、2,都会让对方抢到报3的机会;

如果是“抢6”的游戏,那么将6分解成1、2、3和4、5、6,对每部分都是“抢3”的游戏,那么后报的人只要抢到3就一定能抢到6。

依此类推,甲看似“大度”地让乙先报,所以只要每次报数都能报到3的倍数为止,那么甲一定能抢到“30”,而之后乙让甲先报,因为乙并不知晓其中的猫腻,即使甲开始没有抢到3的倍数,但之后也能扭转局面。

运用的计算思维

甲必胜的方式是利用了减治法的策略,将“抢30”的游戏进行分解,从“抢3”的游戏入手找对策,之后运用于大问题,充分体现“分解”的计算思维。

参考文献

[1]闵于思.风靡世界500强的思维训练题[M].武汉:华中科技大学出版社,2012

[2]于雷.逻辑思维游戏500题=Logic[M].北京:中央编译出版社,2009