入門題:poj1067
威佐夫詳解
例如,兩堆石子,兩種取法,要麼在一堆中取任意數量,要麼在兩堆中取同等數量,取完者勝。
根據前人研究,先手的必敗局為(m,n)【其中 min(m,n) == | m - n | *1.618】
在當前局勢必勝的情況下,可以通過列舉差值使其滿足必敗局的條件,得到下一步的取法。
#include
#include
#include
using namespace std;
const
double g =
(sqrt
(5.0)+
1)/2
; 這種演算法比較準確
bool validate
(int a,
int b)
intmain()
//僅從一堆中取
for(
int i = b -
1;i >=0;
--i)}}
return0;
}}
博弈 威佐夫博弈
有兩堆各若干個物品,兩個人輪流從某一堆或同時從兩堆中取同樣多的物品,規定每次至少取乙個,多者不限,最後取光著得勝。奇異局勢的性質 1.任何自然數都包含在乙個且僅有乙個奇異局勢中 2.任何操作都可以將奇異局勢變為非奇異局勢 3.採用適當的方法,可以將非奇異局勢變為奇異局勢。所以面對非奇異局勢,先手必勝...
威佐夫博弈
威佐夫博奕 wythoff game 有兩堆各若干個物品,兩個人輪流從某一堆或同 時從兩堆中取同樣多的物品,規定每次至少取乙個,多者不限,最後取光者得勝。這種情況下是頗為複雜的。我們用 ak,bk ak bk k 0,1,2,n 表示 兩堆物品的數量並稱其為局勢,如果甲面對 0,0 那麼甲已經輸了,...
威佐夫博弈
description 有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最...