有n个石子,先手第一次不能所有取完,a和b轮流操做且每一个人取的石子树不超过上一我的取的两倍,谁赢?模板
博弈论,斐波那契博弈
这是斐波那契博弈的模板题,打表发现当n为斐波那契数的时候b赢,不然a赢。
考虑证实:
假如一个数是斐波那契数,那么它能够写成更小的两个斐波那契数的和,那先手确定不能将小的那堆取完(取完的话后手能够拿掉大的那一堆,由于斐波那契数列知足下一项小于当前项的两倍)。取一部分的话,后手就把剩下的取掉,仍然留下一个斐波那契数给先手,因此先手必败。
若是不是斐波那契数,由“齐肯多夫定理”(Zeckendorf)可得,每一个正整数均可以分解成若干个不连续不一样的斐波那契数的和,那么先手第一次取掉最小的那个斐波那契数,由于不连续,因此下一个确定比当前的两倍要大,因此后手取不完,先手把剩下的那些取了,那么先手必胜。
证毕。