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);   
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章