C语言写在简单囚徒困境

转载:http://0or1.top/index.php/archives/286/
囚徒困境介绍:囚徒困境是一个经典博弈论。
囚徒困境与博弈论还有一点不同,囚徒双方不管作何选择,同时第三方或者非囚徒一方肯定是受益方。
比如小孩从小家长就怕输在“起跑线上”,报各种补习班,中学,高中,大学,学校分数线不断刷新,最终受益方是学校和培训机构。作为学生无可奈何,无法逃出困境;同时也有两个囚徒问题,具体可以点击囚徒困境说明
这个囚徒理论之前有听说,最近两次见到过他,于是今天就用c语言代码实现两个囚徒做出的选择和个体受益,及整体受益比例:



//https://blog.csdn.net/bjweimengshu/article/details/99790350  囚徒理论说明 
#include <stdio.h>
int methoed(int say);
int scoresum(int s1,int s2);
int qingkuang(int saya,int sayb);
int main(void){
int saya;int sayb;
printf("分别输入囚徒A要说的和B要说的\n1代表yes,0代表no\n");
while(1){
 scanf("%d %d",&saya,&sayb);
 qingkuang(saya,sayb);
 }
} 
qingkuang(int i,int j){
 int say=-1;
if(i==0&&j==0)
    say=1;
if(i==1&&j==1)
    say=2;
if(i==1&&j==0)
    say=3;
if(i==0&&j==1)  
    say=4;
  return methoed(say);
}
int methoed(say){
int score1=0;
int score2=0;
switch(say){       
    case 1: 
    score1-=1;
    score2-=1;
    scoresum(score1,score2);
    break;
    case 2:
    score1-=5;
    score2-=5;
    scoresum(score1,score2);
    break;
    case 3:  
      score1+=0;
      score2-=10;
      scoresum(score1,score2);
    break;
    case 4:  
     score1-=10;
     score2+=0;
     scoresum(score1,score2);
     break;
     default:printf("输入有错"); 
 }
 }   
 int scoresum(int s1,int s2){
int sum=0;
sum=s1+s2;
printf("囚犯A分数%d,囚犯B分数%d,两人总分数%d\n",s1,s2,sum);   
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章