详解取石子Bash Game。
问题:
Bash Game,有1堆含n个石子,两个人轮流从这堆物品中取物,规定每次至少取1个,最多取m个。取走最后石子的人获胜。
思路:
先考虑具体例子,再推导到普遍情况。
先假设n为10, m为3.
若想赢,即取最后一个石子,
可以有(10)或 (9,10)或 (8,9,10)三种取法。
而只要上一轮最后一个取的是第6个,就可以取到最后一个。
因为你取了第六个,对手就只能取(7)或 (7,8)或 (7,8,9)。
对手取(7) (7,8) (7,8,9)哪种,你都能赢。
即:要想取到最后一个,先要取到第6个。
依次类推:要想取到第6个,要先取到第2个。
显然:先手者是能取到第2个的。
再假设n为8, m为3.若想赢,先要取到第4个,若想取到第4个,先要取到第0个,显然先手者是取不到第0个,也取不到第4个的。
因为先手者第一次取是只能选择
(1) (1,2) (1,2,3)。
所以这种情况先手者赢不了
你是不是已经发现规律了,
只要 n mod (m+1) 有余数,先手者就能赢,否则先手者不能赢。
浙公网安备 33010602011771号