问题描述:
发四堆扑克,一堆是2张,一堆是5张,一堆是8张,一堆是10张。排列如下:
2 5 8 10
两个人,轮流拿牌。每次只能在一堆里面拿,无论拿几张都可以,最多一次可以把任意一堆牌全拿走。经过N轮拿牌过后,拿最后一张牌的人输。
解决思路:
1. 从最简单的情况开始考虑,在简单的情况下可以取胜,才能在更复杂的情况取胜;
2. 我能否取胜,取决于“我本次拿走一些牌以后,对方一定是失败的”;
3. 如果我无法拿走一些牌,使得对方一定失败,那我就输了。
下面是推导:
(其中N表示大于1的数)
只有一堆时:
|
本轮剩余的牌数 |
1 |
N |
|
我能否获胜 |
No |
Yes |
有两堆的时候:
|
本轮剩余的牌数 |
1,1 |
1,N |
N,N |
|
我能否获胜 |
Yes (可以推导到“1”的情况) |
Yes (可以推导到“1”的情况) |
No (无法一次推导到前面失败情况) |
有三堆的时候:
|
本轮剩余的牌数 |
1,1,1 |
1,1,N |
1,N,N |
N,N,N |
|
我能否获胜 |
No (无法一次推导到前面失败情况) |
Yes (可以推导到“1,1,1”的情况) |
Yes (可以推导到“N,N”的情况) |
Yes (可以推导到“N,N”的情况) |
有四堆的时候:
|
本轮剩余的牌数 |
1,1,1,1 |
1,1,1,N |
1,1,N,N |
1,N,N,N |
N,N,N,N |
|
我能否获胜 |
Yes (可以推导到“1,1,1”的情况) |
Yes (可以推导到“1,1,1”的情况) |
No (无法一次推导到前面失败情况) |
Yes (可以推导到“1,1,N,N”的情况) |
No (无法一次推导到前面失败情况) |
可以看到,面对“N,N,N,N”的时候,是无法获胜的。所以想赢,一定要后拿牌。
本文通过逐步推导,解析了一种两人轮流拿牌的游戏策略。当四堆牌分别为2、5、8、10张时,揭示了如何通过合理的拿牌顺序确保胜利。
528

被折叠的 条评论
为什么被折叠?



