zoukankan      html  css  js  c++  java
  • 【板子】博弈论

    这里存放三种基础博弈论的板子。

    看代码趴,注释写了应用情况。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cmath>
     5 using namespace std;
     6 int n,m,x;
     7 
     8 //巴什博弈 
     9 //只有一堆n个物品,两个人轮流从这堆物品中取物,
    10 //规定每次至少取一个,最多取m个。最后取光者得胜。
    11 void bash(){
    12     cin>>n>>m;
    13     if(n%(m+1)){
    14         cout<<"Win"<<endl;
    15     }
    16     else{
    17         cout<<"Lose"<<endl;
    18     }
    19 }
    20 
    21 //威佐夫博弈
    22 //有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,
    23 //规定每次至少取一个,多者不限,最后取光者得胜 。
    24 void Wythoff(){
    25     double k = (1+sqrt(5.0))/2;
    26     cin>>n>>m;
    27     if(n > m){
    28         swap(n,m);
    29     }
    30     int t = m - n;
    31     if( n == int(1.0 * t * k)){
    32         cout<<"Lose"<<endl;
    33     }
    34     else{
    35         cout<<"Win"<<endl;
    36     }
    37 }
    38 
    39 //尼姆博弈
    40 //有n堆石子,从任意一堆石子中取出任意数量的石子
    41 //规定至少取一颗,至多取出这一堆剩下的所有石子,最后取光者得胜。
    42 
    43 void nim(){
    44     cin>>n;
    45     int ans = 0;
    46     for(int i = 1; i<= n; i++){
    47         cin>>x;
    48         ans ^= x;
    49     }
    50     if(ans == 0){
    51         cout<<"Lose"<<endl;
    52     }
    53     else{
    54         cout<<"Win"<<endl;
    55     }
    56 }
    57 
    58 int main(){
    59 
    60     return 0;
    61 }
  • 相关阅读:
    jQuery-File-Upload文件上传
    JavaScript探秘:强大的原型和原型链
    JavaScript 开发进阶:理解 JavaScript 作用域和作用域链
    前端开发面试题及答案
    JSP页面
    XMLHTTP.readyState的五种状态
    HTTP: The Protocol Every Web Developer Must Know
    W3C-Web Service
    H5教程
    PHP 页面编码声明方法(header或meta)
  • 原文地址:https://www.cnblogs.com/Asumi/p/9758972.html
Copyright © 2011-2022 走看看