NIM(3) 斐波那契数列在游戏中的妙用

有一堆个数为n的石子,游戏双方轮流取石子,满足:
1)先手不能在第一次把所有的石子取完;
2)之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍)。
约定取走最后一个石子的人为赢家,求先手必胜态。

先手必败态为石头个数为斐波那契数列中的数的情况(从2开始)。

下面给出证明:

数学归纳法:

1.石头个数为2时,结论成立

2.若当石头个数为<n的斐波那契数时,结论成立,现证明当石头个数为K>=n时

        F[k]=F[k-1]+F[k-2]

       ①当先手第一次拿的石头个数>=F[k-2]时,因为 F[k-1]<2*F[k-2],故后手必能拿完所有的石头,先手必败;

       ②当先手第一次拿的石头个数<F[k-2]时,F[k-1]<剩下的石头个数< F[k],故其必定不是斐波那契数,这里补充一个定理

       “Zeckendorf定理”(齐肯多夫定理):任何正整数可以表示为若干个不连续的Fibonacci数之和

       假设剩下的石头个数=F[K-1]+F[ i ]+...+F[ s ] + F[ j ],可以分两种情况讨论

            Ⅰ、F[ j ]< =2 * 先手第一次拿的石头个数Y,如此,后手可以拿走 FF[ j ] 块石头,因为:任何正整数可以表示为若干个 不连续 的Fibonacci数之和,故F[ s ] > 2* F[ j ],而                      因为 s<n,已在归纳法步骤中假设被证明共有F[ s ]块石头时先手是必败 ,故F[ s ]的最后一块石头一定是后手拿走的,同理可知,一直到 F[K-1]的最后一块石头也是                          被后 手拿走的,故先手必败;

           Ⅱ、F[ j ]  > 2 * Y,现证明这种情况是不存在的。

                     反证法:

                          若 F[ j ]  > 2 * Y,F[K] = F[K-1]+F[ i ]+...+F[ s ] +F[ j ]+ Y 

                         < F[K-1]+F[ i ]+...+F[ s ] +F[ j ]+ F[ j -1 ]  = F[K-1]+F[ i ]+...+F[ s ] +F[ j+1 } 

                         <=   F[K-1]+F[ i ]+...+F[ s +1  ] <=   F[K-1]+F[ K-2  ] = F[ K ],F[ K ]<F[ K ],

                         矛盾,假设不成立,故F[ j ]  <= 2 * Y

这样,我们通过数学归纳法证明了 先手必败态为石头个数为斐波那契数列中的数的情况(从2开始)。

在此过程中,第 2 步的 ② 同时也证明了非斐波那契数的石头个数是先手必胜态。

证毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值