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 }
  • 相关阅读:
    封装了一个简单的筛选菜单控件
    安卓存储资源
    处理webp加所有的jpg到指定路径
    苹果内购
    JavaScript关于md5加密
    JavaScript关于sha1加密
    h5跳转
    python遍历文件(替换)
    python遍历文件
    安卓点击home键重启
  • 原文地址:https://www.cnblogs.com/Asumi/p/9758972.html
Copyright © 2011-2022 走看看