关注下方公众号,分享硬核知识
作者 | 小K
出品 | 公众号:小K算法 (ID:xiaok365)
01
故事起源
有一堆石子共N颗,小K和小A轮流取,每次最少取1颗,最多取M颗,最后一次取光石子的获胜。
那么小K应该采取怎样的策略尽可能获胜呢?
02
分析
如果没有取的数量的限制,那就可以一次取完所有的,所以先取的人必胜。
但游戏的规则有限制条件,最少1颗,最多M颗,所以在这种条件下应该采取什么策略,我们继续分析。
03
小规模场景
先考虑一个简单场景,假设只有8颗石子,最少取1颗,最多取3颗。
3.1
剩下小于等于3颗
如果在进行若干轮之后,剩下的石子数量小于等于3,那该轮的人一定必胜。不论是剩1颗,2颗,还是3颗,他都可以一次取走所有的。
为描述方便,设f[x]表示有x颗石子,先取的人的输赢情况。
f[x]=1表示必胜
f[x]=0表示必败
则根据