四種博弈總結
一. 巴什博奕(Bash Game):
1、 本遊戲是一個二人遊戲;
2、 有一堆石子一共有n個;
3、 兩人輪流進行;
4、 每走一步可以取走1…m個石子;
5、 最先取光石子的一方為勝;
POINT:
如果n能被(m+1)整除,後手贏,其他情況先手贏。
可以寫寫sg函式,就知道了。
if(n%(m+1)==0)
printf("second\n");
else
printf("first\n");
二. 威佐夫博弈(Wythoff Game):
有兩堆各若干的物品,兩人輪流從其中一堆取至少一件物品,至多不限,或從兩堆中同時取相同件物品,規定最後取完者勝利。
POINT:兩堆物品數量是a<b。if(a==(sqrt(5)+1)/2*(b-a)) 後手贏 else 先手贏。ps.向下取整用floor
解釋:http://blog.csdn.net/y990041769/article/details/21694007
if(floor((sqrt(5.0)+1)/2*(b-a))==a)
{
printf("second\n");
}
else printf("first\n");
三. 尼姆博弈(Nimm Game):
有任意堆物品,每堆物品的個數是任意的,雙方輪流從中取物品,每一次只能從一堆物品中取部分或全部物品,最少取一件,取到最後一件物品的人獲勝。
POINT:
兩種形態,1.取到最後一件物品的人獲勝。2.取到最後一件物品的人失敗(HDU 2509)。
1.把每堆的數量異或,為0則後手贏,否則先手贏。
2.分單堆和多堆討論。若多堆只有一個,則先手贏。若沒有多堆,則看單堆數量奇偶。若有多個多堆,異或為0則後手贏,反之先手贏。
解釋:http://acm.hdu.edu.cn/forum/read.php?fid=9&tid=10617
1.
int res=0;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
res=res^a[i];
}
if(!res) printf("second\n");
else
{
printf("first\n")
}
2.
http://blog.csdn.net/mr_treeeee/article/details/75136470
四. 斐波那契博弈:
有一堆物品,兩人輪流取物品,先手最少取一個,至多無上限,但不能把物品取完,之後每次取的物品數不能超過上一次取的物品數的二倍且至少為一件,取走最後一件物品的人獲勝。
n為斐波那契數則後手贏,反之先手贏。
解釋:http://blog.csdn.net/acm_cxlove/article/details/7835016
相關文章
- 博弈論總結
- 四種常見NLP框架使用總結框架
- golang 中的四種型別轉換總結Golang型別
- 對四種限流演算法的思考和總結演算法
- SpringMVC-方法四種型別返回值總結SpringMVC型別
- Spring Boot下Profile的四種切換方式思路總結Spring Boot
- SpringMVC-方法四種型別返回值總結,你用過幾種?SpringMVC型別
- NIO(四)channel總結
- 基於Sql server資料庫的四種分頁方式總結SQLServer資料庫
- JUC鎖種類總結
- 【多執行緒總結(四)-三大性質總結】執行緒
- iOS面試題總結(四)iOS面試題
- 第四周總結(2024.7.27)
- 暑期第四周總結
- 暑假第四周總結
- css各種佈局總結CSS
- vue 6種通訊總結Vue
- 2024暑假第四周總結
- 第四周學習總結
- 寶付幫你總結避免銀行卡被盜刷的四種辦法
- 《大話資料結構》讀後總結(四)資料結構
- 前端各種迴圈用法總結前端
- React | ref三種使用方式總結React
- 四元數的運用與總結
- iOS小數四捨五入總結iOS
- 第四-六次作業總結
- Python種匯入模組的三種方式總結Python
- 博弈論系列—智豬博弈
- net中的4種事務總結
- 各種內建函式技巧總結函式
- Spring原始碼系列:依賴注入(四)-總結Spring原始碼依賴注入
- Web前端學習總結第四周Web前端
- 淘淘商城專案 第四天總結
- 專案總結 | 九種缺失值處理方法總有一種適合你
- css和html的四種結合方式介紹CSSHTML
- 超詳細的Java面試題總結(四 )之JavaWeb基礎知識總結Java面試題Web
- Latex 中勾的幾種畫法總結
- 幾種常見排序演算法總結排序演算法