有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子(至少取1個)。
每次有兩種不同的取法,規則如下:
1.一是可以在任意的一堆中取走任意多的石子;
最好的策略,給定初始數量,你是否有必勝的把握?
為方便描述,設表示兩堆石子數量分別為,且你先取。
1.表示必勝
2.表示必敗
3.石堆沒有順序優先順序,所以
2.1首先分析3種特殊情況
1.兩堆石子數量一樣,兩堆都取個,必勝,得
奇異局勢(必敗局勢)。
2.2列出前面的幾種情況如下:
可以得到如下規律:
即奇異局勢為,且
結論:如果兩個人都採取最優策略,面對非奇異局勢,先拿必勝;面對奇異局勢,後拿必勝。
這個其實是經典的威佐夫博弈問題,但首先我們先介紹另乙個定理,貝蒂定理。
3.1貝蒂定理
設是正無理數,且。
記,(為取整函式)。
則是的乙個劃分,。
證明如下
1.任乙個整數至多在集合p或q**現一次。
,對於不同整數各不相同。
2.(反證法)
假設,則存在正整數使得,即,,
兩式相加得
,與為整數矛盾。
3.(反證法)
假設, 則存在正整數使得,
由此得(因為a是無理數),
類似有,
兩式相加得
,與為整數矛盾。
3.2回歸威佐夫問題
設奇異局勢構成的序列組為,即為通項公式,可以看出是乙個貝蒂序列。
設,因為,即。
代入,得。
即。而。
3.3如何快速判斷
給定乙個局勢,得,
如果,則是奇異局勢,否則不是。
3.4例題
poj1067:
3.5**實現
取石子 博弈論 Nim遊戲
題目大意 有n堆石子,第i堆有ai個。每次可以選擇乙個x,選擇乙個質數p滿足p x,選擇乙個0 y a x 然後將y個石子從x移動到x p。問先手有多少種第一步移動的測率能夠必勝?答案除以總方案數輸出。n 106,0 ai 109n 10 6,0 ai 10 9題解 從最簡單的情況推導,什麼情況下是...
HDU 2516 取石子遊戲 (博弈論)
problem description 1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。取完者勝.先取者負輸出 second win 先取者勝輸出 first win input 輸入有多組.每組第1行是2 n 2 31.n 0退出...
博弈論 取石子遊戲 HDU 2516
題解 列舉一下從1到13左右會發現如果當前是斐波那契數必輸 n 2時輸出second n 3時也是輸出second n 4時,第乙個人想獲勝就必須先拿1個,這時剩餘的石子數為3,此時無論第二個人如何取,第乙個人都能贏,輸出first n 5時,first不可能獲勝,因為他取2時,second直接取掉...