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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Nim游戏(初谈博弈)

發布時間:2024/7/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nim游戏(初谈博弈) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
通常的Nim游戲的定義是這樣的:有若干堆石子,每堆石子的數量都是有限的,合法的移動是“選擇一堆石子并拿走若干顆(不能不拿)”, 如果輪到某個人時所有的石子堆都已經被拿空了,則判負(因為他此刻沒有任何合法的移動)。

*這游戲看上去有點復雜,先從簡單情況開始研究吧。
如果輪到你的時候,只剩下一堆石子,
那么此時的必勝策略肯定是把這堆石子全部拿完一顆也不給對手剩,然后對手就輸了。

*如果剩下兩堆不相等的石子,必勝策略是通過取多的一堆的石子將兩堆石子變得相等,
以后如果對手在某一堆里拿若干顆,你就可以在另一堆中拿同樣多的顆數,直至勝利。
如果你面對的是兩堆相等的石子,那么此時你是沒有任何必勝策略的,
反而對手可以遵循上面的策略保證必勝。

*現在我們如何從兩堆的取子策略擴展到任意堆數中呢?

*首先來回憶一下,每個正整數都有對應的一個二進制數,
于是,我們可以認為每一堆硬幣數由2的冪數的子堆組成。
這樣,含有57枚硬幣大堆就能看成是分別由數量為2^5、2^4、2^3、2^0的各個子堆組成。

*現在考慮各大堆大小分別為N1,N2,……Nk的一般的Nim取子游戲。
將每一個數Ni表示為其二進制數(數的位數相等,不等時在前面補0):

N1 = as…a1a0

N2 = bs…b1b0

……

Nk = ms…m1m0

如果每一種大小的子堆的個數都是偶數,我們就稱Nim取子游戲是平衡的,

而對應位相加是偶數的稱為平衡位,否則稱為非平衡位。

因此,Nim取子游戲是平衡的,當且僅當:

as + bs + … + ms 是偶數

……
a1 + b1 + … + m1 是偶數

a0 + b0 + … + m0是偶數

于是,我們就能得出獲勝策略:

游戲人I能夠在非平衡取子游戲中取勝,而游戲人II能夠在平衡的取子游戲中取勝。

*我們以一個兩堆硬幣的Nim取子游戲作為試驗。設游戲開始時游戲處于非平衡狀態。
這樣,游戲人I就能通過一種取子方式使得他取子后留給游戲人II的是一個平衡狀態下的游戲,
接著無論游戲人II如何取子,再留給游戲人I的一定是一個非平衡狀態游戲,如此反復進行,
當游戲人II在最后一次平衡狀態下取子后,游戲人I便能一次性取走所有的硬幣而獲勝。
而如果游戲開始時游戲牌平衡狀態,那根據上述方式取子,最終游戲人II能獲勝。

*下面應用此獲勝策略來考慮 4堆 的Nim取子游戲。
其中各堆的大小分別為7,9,12,15枚硬幣。
用二進制表示各數分別為:0111,1001,1100和1111。于是可得到如下一表:

由Nim取子游戲的平衡條件可知,此游戲是一個非平衡狀態的取子游戲,
因此,游戲人I在按獲勝策略進行取子游戲下將一定能夠取得最終的勝利。
具體做法有多種,游戲人I可以從大小為12的堆中取走11枚硬幣,使得游戲達到平衡(如下表),

之后,無論游戲人II如何取子,游戲人I在取子后仍使得游戲達到平衡。
同樣的道理,游戲人I也可以選擇大小為9的堆并取走5枚硬幣而剩下4枚,
或者,游戲人I從大小為15的堆中取走13枚而留下2枚。

所以歸根結底,Nim游戲的核心就是判斷初始狀態是不是平衡狀態
非平衡狀態先手必勝,平衡狀態后手必勝

轉載于:https://www.cnblogs.com/wutongtong3117/p/7673588.html

總結

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

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