对局问题 ——取石子问题– 1堆(转)

Description:

有N粒石子,甲乙两人轮流从中拿取,一次至少拿一粒,至多拿先前对方一次所取石子数目的两倍。甲先拿,开始甲可以拿任意数目的石子(但不得拿完)。最先没有石子可拿的一方为败方。

    请问,甲能否获胜?(1 < N < 100)

Analysis:

用一个简单例子分析:假设有N= 4粒石子,则一开始甲最多能取3粒,用(4,3)来表示初始状态。

如果一个状态没有子状态,是结局,则根据题目条件判定胜负

如果一个状态的所有子状态都是先手胜,则该状态是先手败

猜想:

甲必败: 2 3 5 8 ……

甲必胜: 4 6 7 ……

设{F}为Fibonacci数列(F1=2,F2=3,FK=FK-1+FK-2

初始时有N粒石子,若N∈{F}则先手必败,否则先手必胜

Solution:(省略证明)

性质1:若K≥N,则状态(N,K)先手必胜。

性质2:若状态(N,N-1)先手必败,则状态(N,K)K< N 先手必败。(这里没怎么看明白,谁看懂了告诉我啊万分感激)

性质3:若状态(N,K)K< N,则最后一次取走的石子数目不超过2N/3。

结论1:状态(Fi,A) A < Fi 先手必败。

结论2:状态(N,N-1) N不属于{F}且N>2,先手必胜。

本文章转自pku报告,作者如有问题请联系我,一定配合删除

原文地址:https://www.cnblogs.com/eavn/p/1757647.html