博弈入门

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了博弈入门相关的知识,希望对你有一定的参考价值。

巴什博奕

巴什博奕: 题目的  类型就是

各位勇敢者要玩的第一个游戏是什么呢?很简单,它是这样定义的:
1、  本游戏是一个二人游戏;
2、  有一堆石子一共有n个;
3、  两人轮流进行;
4、  每走一步可以取走1…m个石子;
5、  最先取光石子的一方为胜;

如果游戏的双方使用的都是最优策略,请输出哪个人能赢。

 

巴什博弈:  以上面的 题目为例   当 最后剩下只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜.

      只要能做到  给对方  留下 m+1 个 物品 己方就可以获得胜利 .  只要能做到一次的 将对方 挑选之前将剩下的物品数量变成 (m+1)*n  那么 当 地方挑选完之后 ,己方可以 将  剩余物品 在此变成 (m+1)*(n-1)

 

下面附上习题

 

Brave Game

 

http://acm.hdu.edu.cn/showproblem.php?pid=1846

各位勇敢者要玩的第一个游戏是什么呢?很简单,它是这样定义的:
1、  本游戏是一个二人游戏;
2、  有一堆石子一共有n个;
3、  两人轮流进行;
4、  每走一步可以取走1…m个石子;
5、  最先取光石子的一方为胜;

如果游戏的双方使用的都是最优策略,请输出哪个人能赢。

 

Input

 

输入数据首先包含一个正整数C(C<=100),表示有C组测试数据。
每组测试数据占一行,包含两个整数n和m(1<=n,m<=1000),n和m的含义见题目描述。

 

 


Output

 

如果先走的人能赢,请输出“first”,否则请输出“second”,每个实例的输出占一行。

 

 


Sample Input

 

2 23 2 4 3

 

 


Sample Output

 

first second

 

 

下面附上  自己的 水货代码

 

 

 

 

//   如果 第一个人 要输的话  只能 在最开始的时候 第一个人 就陷入了 总数能被(n+1)整除的 困境
#include<stdio.h>
int main()
{
    int t,n,m;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&m);
        if(n%(m+1))              // 不等于0 的 情况下  执行下一句
            printf("first\n");   
        else
            printf("second\n");
    }

    return 0;
}

 

悼念512汶川大地震遇难同胞——选拔志愿者

选拔规则如下:
1、最初的捐款箱是空的;
2、两人轮流捐款,每次捐款额必须为正整数,并且每人每次捐款最多不超过m元(1<=m<=10)。
3、最先使得总捐款额达到或者超过n元(0<n<10000)的一方为胜者,则其可以亲赴灾区服务。
我们知道,两人都很想入选志愿者名单,并且都是非常聪明的人,假设林队先捐,请你判断谁能入选最后的名单?

输入:

输入数据首先包含一个正整数C,表示包含C组测试用例,然后是C行数据,每行包含两个正整数n,m,n和m的含义参见上面提到的规则。

 

输出:

对于每组测试数据,如果林队能入选,请输出字符串"Grass", 如果徐队能入选,请输出字符串"Rabbit",每个实例的输出占一行。

 

Sample Input

 

2 8 10 11 10

 

 

 

Sample Output

 

Grass Rabbit

 

 1 //   如果 第一个人 要输的话  只能 在最开始的时候 第一个人 就陷入了 总数能被(n+1)整除的 困境
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int t,n,m;
 6     scanf("%d",&t);
 7     while(t--)
 8     {
 9         scanf("%d%d",&n,&m);
10         if(n%(m+1))              // 不等于0 的 情况下  执行下一句
11             printf("Grass\n");
12         else
13             printf("Rabbit\n");
14     }
15 
16     return 0;
17 }

 

以上是关于博弈入门的主要内容,如果未能解决你的问题,请参考以下文章

博弈论之入门小结

博弈论经典入门

《博弈入门》第一章 引论

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

博弈入门

ACM博弈论SG函数入门:博弈树SG函数的转移与子游戏的合并