码迷,mamicode.com
首页 > 其他好文 > 详细

博弈论入门之斐波那契博弈

时间:2018-02-25 19:15:29      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:main   AC   问题   cpp   acm   div   amp   can   scanf   

斐波那契博弈

斐波那契博弈是一种经典的博弈问题

有一堆石子,两个顶尖聪明的人玩游戏,先取者可以取走任意多个,但不能全取完,以后每人取的石子数不能超过上个人的两倍

结论

斐波那契博弈有一个非常重要的性质:

先手必败,当且仅当石子数为斐波那契数

是不是很神奇??

证明:

懒得看了,这里

代码

HDU 2516

#include<cstdio>
#include<map>
int fib[233],x;
std::map<int,bool>mp;
int main()
{
    fib[1]=1;fib[2]=1;
    for(int i=3;i<=50;i++) fib[i]=fib[i-1]+fib[i-2],mp[fib[i]]=1;
    while(scanf("%d",&x)&&x!=0)
        puts(mp[x]==1?"Second win":"First win");
    return 0;
}

博弈论入门之斐波那契博弈

标签:main   AC   问题   cpp   acm   div   amp   can   scanf   

原文地址:https://www.cnblogs.com/zwfymqz/p/8469864.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!