博弈論基礎

博弈論總結

什么是博弈論:

多人進行博弈,假設每個人都采取最優策略,一定有一個人勝出,在知道初態及規則的情況下,求解出

何人勝出的一類問題的理論及方法。

博弈論的一些性質

P點:必敗點,N點:必勝點

1)無法進行任何移動的局面(也就是terminal position)是P-position

2)可以移動到P-position的局面是N-position

3)所有移動都導致N-position的局面是P-position

巴什博奕:

介紹:只有一堆n個物品,兩個人輪流從中取物,規定每次最少取一個,最多取m個,最后取光者為

勝。

必定可以寫成該式子 n=k*(m+1)+r

結論:若r=0,則先手必敗,否則先手必勝。

if(n % (m + 1) == 0)cout<<"后手必勝"<<endl;elsecout<<"先手必勝"<<endl;

威佐夫博弈:

介紹:有兩堆各若干的物品,兩人輪流從其中一堆取至少一件物品,至多不限,或從兩堆中同時取相同

件物品,規定最后取完者勝利。

結論:若兩堆物品的初始值為(xy),且x<y,則另z=y-x

w=int[((sqrt5+1/2*z ];(中間為熟知的黃金分割比)

w=x,則先手必敗,否則先手必勝。

if(x > y)swap(x, y);int c = floor((y - x) * (sqrt(5) + 1) / 2);if(c == x)cout<<0<<endl;elsecout<<1<<endl;

尼姆博奕:

介紹:有三堆各若干個物品,兩個人輪流從某一堆取任意多的物品,規定每次至少取一個,多者不限,最后取

光者得勝.

結論:n堆石子全部做異或運算,結果為0則為必敗結果

SG函數:

首先定義mex(minimal excludant)運算,這是施加于一個集合的運算,表示最小的不屬于這個集合的非

負整數。例如mex{0,1,2,4}=3mex{2,3,5}=0mex{}=0

對于任意狀態 x 定義 SG(x) = mex(F),其中F x 后繼狀態的SG函數值的集合(就是上述mex中的數

值)。最后返回值(也就是SG(X))為0為必敗點,不為零必勝點。

進一步解釋一下F,就是題意中給出的可以移動的次數。舉個例子來說,一堆石子,每次只能拿13

57個,那么S數組就是1357

假如說是在一個游戲中有多個石子堆該怎么辦了。我們只需要把對每個石子堆進行sg函數的調用,將得

到的所有的值進行異或。得出來的結果為0則該情形為必敗態。否則為必勝態。

int sg[MAXN];
int f[MAXM]; //可以取走的石子個數
bool Hash[MAXN];void getSG(int m)
{memset(sg, 0, sizeof(sg));for (int i = 1; i < MAXN; i++) {//枚舉石子的個數memset(Hash, false, sizeof(Hash));for (int j = 0; j < m && f[j] <= i; j++)Hash[sg[i-f[j]]] = true;//枚舉每次拿走的個數并標記for (int j = 0; j < MAXN; j++) {if (!Hash[j]) {sg[i] = j; //找到這個F[](該狀態可以達到的狀態)中不存在的最小的數break;}}}
} //例題:hdu1847
int main()
{int n, num = 1;for (int i = 0; i < MAXM; num <<= 1, i++)f[i] = num;//這里的F數組就是可以移動的步數,每次都是2的冪次getSG(MAXM);while (cin >> n){if (sg[n])cout << "Kiki" << endl;elsecout << "Cici" << endl;} return 0;
}

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445215.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445215.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445215.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

矩陣論-范數理論及其應用

范數理論及其應用2.1向量范數及其性質2.2矩陣范數本系列博文主要總結學習矩陣論的心得筆記&#xff0c;參考數目《矩陣論》–張凱院&#xff1b;整個文章的整理體系參照行書過程。范數–非負實數&#xff0c;用于衡量線性空間元素&#xff08;如&#xff1a;向量&#xff0c;矩…

大數據學習(09)--spark學習

文章目錄目錄1.spark介紹1.1 spark介紹1.2 scale介紹1.3 spark和Hadoop比較2.spark生態系統3.spark運行框架3.1 基本概念3.2 架構的設計3.3 spark運行基本流程3.4 spark運行原理3.5 RDD運行原理3.5.1 設計背景3.5.2 RDD概念和特性3.5.3 RDD之間的依賴關系3.5.4 stage的劃分3.5.…

探索 Pexpect

概述 通過本系列第一部分 《探索 Pexpect&#xff0c;第 1 部分&#xff1a;剖析 Pexpect 》&#xff08;請參閱參考資料&#xff09;的介紹&#xff0c;相信大家已經對 Pexpect 的用法已經有了比較全面的了解&#xff0c;知道 Pexpect 是個純 Python 語言實現的模塊&#xff…

Python的Pexpect詳解 [圖片]

Pexpect 是一個用來啟動子程序并對其進行自動控制的純 Python 模塊。 Pexpect 可以用來和像 ssh、ftp、passwd、telnet 等命令行程序進行自動交互。繼第一部分《探索 Pexpect&#xff0c;第 1 部分&#xff1a;剖析 Pexpect 》介紹了 Pexpect 的基礎和如何使用后&#xff0c;本…

關系數據庫——sql增刪改

數據的插入 插入元祖 --1. 表名后沒有指定屬性列&#xff1a;表示要插入的是一條完整的元組&#xff0c;且屬性列屬性與表定義中的順序一致 insert into student values (201215128, 陳東, 18, 男, IS);--2. 在表明后指定要插入數據的表名及屬性列&#xff0c;屬性列的順序可…

機器學習中的聚類方法總結

聚類定義 定義 聚類就是對大量未知標注 的數據集&#xff0c;按數據 的內在相似性將數據集劃分為多個類別&#xff0c;使 類別內的數據相似度較大而類別間的數據相 似度較小。是無監督的分類方式。 聚類思想 給定一個有N個對象的數據集&#xff0c;構造數據的k 個簇&#x…

學點數學(1)-隨機變量函數變換

隨機變量函數變換本文介紹一維隨機變量函數變換&#xff0c;參考文獻&#xff1a;https://wenku.baidu.com/view/619f74ac3186bceb19e8bbd0.html變換TTT作用于隨機變量XXX&#xff0c;產生隨機變量YYY. T:X?>Y或者寫為yT(x)T:X->Y 或者寫為 yT(x)T:X?>Y或者寫為yT(x…

關系數據庫——關系數據語言

關系 域&#xff1a;一組具有相同數據類型的值的集合&#xff08;即取值范圍&#xff09; 笛卡爾積&#xff1a;域上的一種集合運算。結果為一個集合&#xff0c;集合的每一個元素是一個元組&#xff0c;元組的每一個分量來自不同的域。 基數&#xff1a;一個域允許的不同取值…

Python模塊(2)-Numpy 簡易使用教程

Numpy模塊 簡易使用教程1.數組創建2.數組基本屬性-維度、尺寸、數據類型3.數組訪問-索引、切片、迭代4.數組的算術運算-加減乘除、轉置求逆、極大極小5.通用函數-sin,cos,exp,sqrtnp.dot與np.matmul的區別6.數組的合并和分割6.1 np.vstack(),np.hstack()6.2 np.stack()7.list與…

機器學習問題總結(01)

文章目錄1.請描述推薦系統中協同過濾算法CF的原理2.請描述決策樹的原理、過程、終止條件&#xff0c;以及如何防止過擬合2.1決策樹生成算法2.2 剪枝處理&#xff08;防止過擬合&#xff09;2.3 停止條件2.4 棵決策樹的生成過程2.5 決策樹的損失函數3.請描述K-means的原理&#…

pthread_attr_init線程屬性

1&#xff0e;線程屬性 線程具有屬性&#xff0c;用pthread_attr_t表示&#xff0c;在對該結構進行處理之前必須進行初始化&#xff0c;在使用后需要對其去除初始化。我們用pthread_attr_init函數對其初始化&#xff0c;用pthread_attr_destroy對其去除初始化。 1&#xff0e; …

Python實例講解 -- 解析xml

Xml代碼 <?xml version"1.0" encoding"utf-8"?> <info> <intro>信息</intro> <list id001> <head>auto_userone</head> <name>Jordy</name> <number&g…

springboot3——Email

maven導入包&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.1.6.RELEASE</version></dependency> 參數配置&#xff1a; # MailPrope…

python(22)--面向對象1-封裝

python面向對象1面向過程/面向對象2面向對象核心概念-類3類的設計3.1類三要素-類名、屬性、方法3.2面向對象基礎語法3.2.1查看對象的常用方法3.2.2類定義3.2.3創建類對象3.2.4__init__()方法3.2.5 self參數3.2.6類內置方法和屬性_del_()方法--銷毀對象_str_()方法--定制化輸出對…

機器學習問題總結(02)

文章目錄1.stacking模型以及做模型融合的知識1.1 從提交結果中融合1.2 stacking1.3 blending2. 怎樣去優化SVM算法模型的&#xff1f;2.1 SMO優化算法2.2 libsvm 和 Liblinear3.現有底層是tensorflow的keras框架&#xff0c;如果現在有一個tensorflow訓練好的模型&#xff0c;k…

python對操作系統的目錄和文件操作

一、獲取當前目錄下的特定文件列表>>>import glob,os>>>curdir os.getcwd() #獲取當前目錄>>>os.chdir(workdir) #設置當前目錄>>>dir glob.glob(*.dat) #獲取當前目錄的dat文件列表>>>os.chdir(curdir) #…

常見漏洞

Cookie without HttpOnly flag set 如果在Cookie上設置了HttpOnly屬性&#xff0c;則客戶端JavaScript無法讀取或設置Cookie的值。 這種措施通過阻止某些客戶端攻擊&#xff08;例如跨站點腳本&#xff09;&#xff0c;通過阻止它們通過注入的腳本來簡單地捕獲cookie的值&…

python函數星號參數

2011-09-01 17:35 2人閱讀 評論(0) 收藏 編輯 刪除 今天有個工作是導出一個函數給腳本用 我自已先要測一下 先要客戶端發送一個消息給服務器 看了下C部分的代碼,如下 "def onNetMessage(self,playerID, msgName,msgParam):\n" //客戶端調用服務器腳本 " …

MachineLearning(3)-流型

流型-manifold在很多機器學習的文章中會見到“嵌入在高維空間的低維流型”這樣的字眼&#xff0c;下記錄一些重要概念。參考資料&#xff1a;https://blog.csdn.net/sinat_32043495/article/details/789977581.流型 局部具有歐幾里得空間性質的空間&#xff08;流型就是一個空間…

C/C++常見面試題(四)

C/C面試題集合四 目錄 1、什么是C中的類&#xff1f;如何定義和實例化一個類&#xff1f; 2、請解釋C中的繼承和多態性。 3、什么是虛函數&#xff1f;為什么在基類中使用虛函數&#xff1f; 4、解釋封裝、繼承和多態的概念&#xff0c;并提供相應的代碼示例 5、如何處理內…