斐波那契博弈证明

以下内容是个人从博主https://blog.csdn.net/u011762318 的斐波那契证明博客中理解整理而来,个人觉得他写的很好,但是有些地方略过了,所以我对他(她)的证明进行了一些修饰补充



前提:

  1. 任意数都能由若干斐波那契数列的不同项组成,而且任意两项都不是相邻的斐波那契数,因为相邻两项可以合并:
    a_(n) = a_(n-1) + a_(n - 2)

  2. 对于斐波那契数列
    a_(1) = 1 , a_(2) = 1, a_(3) = 2, a_(4) = 3, a_(5) = 5,……,
    a_(n) = a_(n-1) + a_(n-2);
    可以发现 石子数为 a_(3),a_(4) 先手必败,也就是最后取光石子的是后手。

分类讨论

①当石子数为 一项斐波那契数,因为前4项结果已知都是先手必败,所以从第5项开始递推 a_(5) = a_(4) + a_(3);

a_(n) = a_(n - 1) + a_(n-2) = 2a_(n -2) + a(n - 3) < 3*a_(n - 2)

因为 第i + 1次取的石子数最多是第i次的 2 倍,
结合以上不等式,则第一次不能取 >= a_(n - 2) 个,不然第二次的人就能把石子取完,先手就输了

所以的先手第一次只能取 < a_(n - 2) = a_(3),因为之前已经得到a_(3)是先手必败,所以后手一定能做到把a_(3)取完,这样就先手的人就要处理a_(4)先手的局面了,又a_(4)必败,所以a_(5)必败
递推a_(6) = a_(5) + a_(4) 同理先手必败
…… 所以 石子数为单项斐波那契数列的先手必败

②考虑石子数是由2项及以上不相邻的斐波那契项组成(相邻项可以合并)

很简单的啦 ,为了方便理解,我们这次把先手设为a,后手为b.

假设极端情况下石子数(每隔一个斐波那契项都有).把石子按大小分为若干堆 a_(n) 、a_(n - 2) 、a_(n - 4)、a_(n - 6), …… , a_(n - k)

先给个不等式并证明下:
a_(n) > 2a_(n-2)
a_(n) = a_(n-1) + a_(n-2) = a_(n - 3) + 2a(n - 2) > 2a_(n-2)

所以这个时候,a只要取了 a_(n - k) ,b一定取不完 a_(n - k + 2),所以a可以把局面变成让 b的变成先手去取a_(n - k + 2) ,由前面对① 的讨论可以得到新的先手b必败(a最后取完a_(n-4)这一堆) 。
对于隔着 > 1项的斐波那契数列项也一定满足以上条件

同理:所以这个时候a对每一堆从小到大都能必胜的取完,直到最后一堆,所以这种情况 先手a必胜.

得证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值