威佐夫博奕

2021-07-01 20:06:12 字數 647 閱讀 2461

取石子遊戲

有兩堆石子,雙方輪流取走一些石子,合法的取法有如下兩種:

1、在一堆石子中取走任意多顆;

2、在兩堆石子中取走相同多的任意顆;

約定取走最後一顆石子的人為贏家,求必勝策略。

滿足下列公式的為必敗情況:

k:第k中必敗情況。

至於為什麼有這個**分割數( (1 + sqrt(5))/2 ),這裡

m(k) = k * (1 + sqrt(5))/2

n(k) = m(k) + k;

如果給你兩個數a,b(a

1.很容易得到k=b-a,再判斷m==k*(sqrt(5)+1)/2;

2.先由a=k*(1+sqrt(5))/2,可反解k=(int)(sqrt(5)-1)*n/2+1,再判斷 m==k*(sqrt(5)+1)/2 ,n==m+k

上**,通俗易懂

#include #include int main()

int k=n-m;

n=(int )(k*(sqrt(5)+1))/2;

if(m==n)

printf("0\n");

else

printf("1\n");

}return 0;

}

威佐夫博奕

威佐夫博奕 模型 有兩堆石子,石子數目分別為n和m,現在兩個人輪流從兩堆石子中取石子,每人每次取石子時可以從一堆石子中拿走若干個,也可以從兩堆中取相同數量的石子,取完最後一堆石子的人贏。這種情況有些複雜,先用 m,n 表示兩堆石子的數目,並稱其為局勢,如果兩人中某人面對 0,0 的局勢,則他已經輸了...

威佐夫博奕

接上次的巴什博奕之後,我在說說威佐夫博奕。仍然先簡單介紹一下 有兩堆物品若干,數量可以相同可以不同,兩個人輪流從某一堆任意取或是同時從兩堆中取同樣多的物品,規定每次至少取乙個,與巴什博奕不同,這裡沒有規定取出的物品的上限,最後取完物品的人獲得遊戲勝利。這種情況比之前的巴什博奕略微複雜一點。我們使用 ...

威佐夫博奕

1001 買單 time limit 1 sec memory limit 128 mb 64bit io format lld submitted 250 accepted 116 submit status web board description 2020年wh和cf在上海和平飯店約著吃飯,...