日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

小结博弈

發布時間:2024/4/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小结博弈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考資料:https://www.cnblogs.com/kuangbin/archive/2011/08/28/2156426.html

一、巴什博奕

只有一堆物品,兩人輪流取,每次最多m個,最少一個。最后取光者獲勝

分析:假設共n個物品,n=m+1, 那么先手必敗。所以為了先手必勝。可以把n表示為

n = k(m+1) + s? ,? s <= m

只要先手取s個,把數量維持到m+1的倍數即可。對方取r個,自己就取m+1-r個

?

二、威佐夫博弈

有兩堆物品,兩人輪流取,每次可以從一堆或兩堆取相同數量物品,最少1個,最多不限,最后取光者獲勝

分析:用(ak,bk)ak<bk, k=0,1,2,3……表示兩堆的數量,也稱局勢

其中如果甲面對(0, 0)局勢,那么甲已經輸了,稱奇異局勢

前幾個奇異局勢:(0,0) (1,2)?? (3,5)? (4, 7)? (6, 10)

其中ak就是前面未出現的最小數,bk = ak + k

可以看出奇異局勢 有以下三種性質

①:任何自然數都包含在一個且僅有一個的奇異局勢中

  證明:由于ak是沒出現的最小數,所以ak>ak-1 而bk=ak+k>ak-1+k-1=bk-1>ak-1

②:任意操作都可以把奇異局勢轉化為非奇異局勢

  證明:若只改變(ak,bk)的某個分量,那么另一個分量一定不在其他奇異局勢里。所以必然是非奇異局勢。

     如果使兩個分量同時減少,由于差不變,肯定也是非奇異局勢

③:適當操作就可以把非奇異局勢轉化為奇異局勢

  證明有兩個不懂。所以(證明見文頂參考資料)

?

從以上性質可知:面對非奇異局勢,先手必勝;反之,后手必勝

現在問題就是 如果判斷一個局勢(a,b) 是不是奇異局勢

深奧的看不是太懂,不過可以這樣判斷

已知 a < b, 奇異局勢:a = k*1.618

k = b - a,? 1.618=(sqrt(5)+1)/2;

?

三、尼姆博弈

有三堆物品,兩人輪流從某一堆取任意多物品,每次至少一個,最后取光者獲勝

?

分析:與二進制有關,用(a,b,c) 表示某種局勢,首先(0,0,0) 是奇異局勢,無論誰面對必敗。

第二種奇異局勢(0,n,n), 只要對手拿走一樣多的物品,最后都將導致(0,0,0)。

仔細分析(1,2,3)也是奇異局勢,無論誰拿,都會變為(0,n,n)

這里介紹異或運算 二進制對應位 不一樣為1,一樣為0

對于奇異局勢 (0,n,n) 異或結果為0

對于任何奇異局勢 (a,b,c)  a^b^c = 0

?

如果我們面對非奇異(a,b,c),要如何變為奇異局勢? 

假設a<b<c 我們只虛把 c 變為 a^b 即可

所以就把c減去c-a^b

?

重點理解:取火柴游戲:

題目1:今有若干堆火柴,兩人依次從中拿取,規定每次只能從一堆中取若干根,?
可將一堆全取走,但不可不取,最后取完者為勝,求必勝的方法。?
題目2:今有若干堆火柴,兩人依次從中拿取,規定每次只能從一堆中取若干根,?
可將一堆全取走,但不可不取,最后取完者為負,求必勝的方法。

?

定義:若所有火柴數異或為0,則稱為利他態,用T表示,否則就利己態 用S表示

因為誰面對異或為0, 就輸了,所以是利他(對手)態

?

第一個題目:

定理一:對于任何一個S態,總能從一堆火柴中取出若干使之成為T態

證明:

  若有n堆火柴,每堆A(i) 根火柴,那么既然處于S態,

  c=A(1)^A(2)^……^A(n) > 0

  把c表示成二進制,記最高位為第p位,則必然存在一個A(t), 它的第p位也是1。

  那么我們把 x=A(t)^c , 則得到x<A(t),因為最高位同為1,肯定小了。所以x<A(t)

  ?? A(1)^A(2)^……^x^……^A(n)

  = A(1)^A(2)^……^A(t)^c^……^A(n)

  = A(1)^A(2)^……^A(n)^A(1)^A(2)^……^A(n)

  = 0

  也就是說從A(t)中取出 A(t)-x 根火柴,會從S態變為T態。證畢。

?

定理二:T態,取任何一堆的若干根,都成為S態。

證明:

  反證法:c=A(1)^A(2)^……^A(i)^……^A(n)

  c'=A(1)^A(2)^……^A( i' )^……^A(n) 

  c ^ c' = A(1)^A(1)^A(2)^A(2)^……A(i)^A(i')^……^A(n)^A(n)=A(i)^A(i')=0

  推出A(i)=A(i'),與已知矛盾,所以命題得證

   

定理三:S態,只要方法正確,必勝

證明:

  最終勝利即由S態轉化為T態,任何一個S態,只要把它變為T態(由定理一,S態可以變為T態),對于T態來說只能變為S態(由定理   二)。所以S態向T態都可以由自己控制,對方只能被動的實現T態變為S態。故S態必勝

?

定理四:T態,只要對方方法正確,必敗

證明:

  由定理三易得。

總結:對于先取光勝利的博弈,S態必勝,T態必敗。

?

第二個題目:

定義:若一堆中僅有1根火柴,稱為孤單堆。若大于1根,則稱為充裕堆

定義:T態中,若充裕堆的堆數大于等于2,稱為完全利他態,用T2表示,若充裕堆為0,稱為部分利他態,用T0表示

不會有T1的存在:因為孤單堆異或只會影響最后一位,一個充裕堆可以影響高位。所以異或和不會為0

?

定理五:S0態,即僅有奇數個孤單堆,必敗。T0態必勝

證明:

  S0態就是每次只能取1根,奇數堆,肯定是自己取的最后一根。必敗。

  同理 ,T0態必勝。

?

定理六:S1態,只要方法正確,必勝

證明:

  若此時孤單堆為奇數,把充裕堆取完,否則取剩1根。

?

定理七:S2態不可一次變為T0態

證明:

  充裕堆不可能一次由2變為0

?

定理八:S2態可一次變為T2態

證明:

  由定理一,S態可變為T態,又由定理七可知,S2態不可一次變為T0態,所以可一次變為T2態(T1不存在)

?

定理九:T2態,只能變為S2態或S1態

證明:

  由定理二,T態只能變為S態。由于充裕堆不可能一次由2變為0,所以S態不可能為S0態。

?

定理十:S2態,只要方法正確,必勝。

證明:

  1)? S2態,就變為T2態? (定理八)

  2)對方只能變為S2態或S1態 (定理九)

  若變為S2態,繼續1)

  若變為S1態,S1必勝。

?

定理十一:T2態必輸。

證明:

  由定理十易得。

?

總結:對于先取光失敗的博弈,必勝態:S2、S1、T0、必敗態:S0、T2

?

SG值內容留

?

  

?

?

  

?

轉載于:https://www.cnblogs.com/ACMerszl/p/10371521.html

總結

以上是生活随笔為你收集整理的小结博弈的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。