外观
约 613 字大约 2 分钟
思维题中等字节
2024-10-8
字节 - 2024/9/29
两个人 一次可以拿1 - 3个石子 一共100个石子 谁会赢
⭐️ ⭐️ ⭐️
这个问题是一个经典的博弈论问题,涉及到两个人轮流拿石子,每次可以拿 1 到 3 个,总共 100 个石子。你需要判断两个人在最佳策略下谁会获胜。
两个玩家轮流拿石子,每次可以拿 1、2 或 3 个,拿走最后一个石子的人获胜。
这个问题实际上是一个“必胜”与“必败”状态的划分。
目标:找出每个玩家在每种石子数量下是否有“必胜策略”。
如果可以将对手逼到一个“必败”状态(即无论对手怎么拿都输),当前玩家就是赢家。
如果剩下的石子数量是 4 的倍数(比如 4、8、12 等),那么你无论怎么拿,都会让对方拿到一个有利的数量,从而你最终会输掉比赛。如果不是 4 的倍数(比如 1、2、3、5、6、7 等),你可以通过拿走适当数量的石子,把对手逼到一个剩下石子数量为 4 的倍数的状态。从而你获胜。4是怎么来的?为什么不是5,6的倍数,偏偏选中了4。博弈论中的博弈其实是根据对方的策略来制定或调整自己的策略。我们来看看,对方单次可能拿走多少石子?
1. 对方拿 1 个,你可以拿1, 2 或者 3,所以当对方拿 1 个的时候,一轮次一共能消耗 2, 3,或 4 个石子 2. 对方拿 2 个,你可以拿1, 2 或者 3,所以当对方拿 2 个的时候,一轮次一共能消耗 3, 4,或 5 个石子 3. 对方拿 3 个,你可以拿1, 2 或者 3,所以当对方拿 3 个的时候,一轮次一共能消耗 4, 5,或 6 个石子
不难发现,不管对方拿多少,我们都能经过博弈让当前轮次消耗 4 个石子。回到原来的问题,100个石子,如果双方都用最佳的策略拿石子,因为100是4的倍数,所以谁先拿谁输。