24小时热门版块排行榜    

CyRhmU.jpeg
查看: 858  |  回复: 3

骞骞

金虫 (正式写手)

[求助] 求解一道来自百度知道的数学题

在百度知道上看到一道数学题:
3.5.7分三堆,每次只能在一堆拿任意个数,谁拿最后一个谁输.找它的数学规律.
比如一共15根火柴,分成三堆,一堆3.一堆5.一堆7.每次只能拿其中一堆的任何个数,不能隔堆拿,必须在一堆中拿取,当谁拿到最后一根谁输。

百度知道上也有解答的,但我实在看不明白,所以过来求教各位数学大侠。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

天道酬勤66

金虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
soliton923: 金币+1, 欢迎讨论~~ 2012-03-31 11:37:25
这是博弈论的经典题目:
像这类问题,可以将其化为2进制考虑。
3=2^0+2^1
5=2^0          +2^2
7=2^0+2^1  +2^2
如果每列个数全是偶数,这叫做平衡状态(只有第一列有数其余各列没有数时除外),先拿的必输。
比如上面的个数分别为:第一列为3,第二三都列为2.

知道了这一点我们就可以稳操胜券了。比如上面的3,5,7分法, 第二、三列为偶数,第一列为奇数,先行者必赢,只需次次将每一列的数目保持偶数即可,但要注意一点:只剩两堆时,若有一堆只剩下一根火柴,那么就不要犹豫了,果断地拿掉另一堆去领礼物就可以了。第一列为奇数,我先从任意一堆中拿走一根火柴即可将3堆的队形保持为全是偶数。任另一个人如何取,我们都能稳稳地将三列个数保持住偶数个的形式。打个比方,我先取5中的一根火柴,使得各列个数都是2:
3=2^0+2^1
4=                +2^2
7=2^0+2^1  +2^2
若对方从7中取走3跟火柴,为了保持住每列为偶的必赢形式,我可以拿走第一堆:
0=
4=                +2^2
4=                +2^2
下面就很简单了,无论如何,他都是注定要失败的了。如果敢剩1,我将另一堆取走;如果取得使得该堆剩余多于1根,我就让另一堆中剩余同样多的火柴,活活气死他,直到某一堆剩下1根火柴为止。

这下明白点了吧,二进制在博弈论中占据着相当重要的位置,很多时候都需要它的援助。
2楼2012-02-22 20:37:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dxwbucea

铁虫 (著名写手)

1楼说的很正确,是用二进制来求解。
其实还可以考虑,谁那到最后一根谁赢。也是二进制,道理一样。
很有意思的。
这还是挺唬人的。在游戏之前可以不确定规则,到后面再定规则,看起来更有挑战性。
3楼2012-02-22 21:00:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liuqh

铁杆木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
搜索一下Nim游戏,相关的资料还是很多的
4楼2012-02-23 10:23:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 骞骞 的主题更新
信息提示
请填处理意见