有n個石子,先手第一次不能所有取完,a和b輪流操做且每一個人取的石子樹不超過上一我的取的兩倍,誰贏?模板
博弈論,斐波那契博弈
這是斐波那契博弈的模板題,打表發現當n爲斐波那契數的時候b贏,不然a贏。
考慮證實:
假如一個數是斐波那契數,那麼它能夠寫成更小的兩個斐波那契數的和,那先手確定不能將小的那堆取完(取完的話後手能夠拿掉大的那一堆,由於斐波那契數列知足下一項小於當前項的兩倍)。取一部分的話,後手就把剩下的取掉,仍然留下一個斐波那契數給先手,因此先手必敗。
若是不是斐波那契數,由「齊肯多夫定理」(Zeckendorf)可得,每一個正整數均可以分解成若干個不連續不一樣的斐波那契數的和,那麼先手第一次取掉最小的那個斐波那契數,由於不連續,因此下一個確定比當前的兩倍要大,因此後手取不完,先手把剩下的那些取了,那麼先手必勝。
證畢。