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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Nim博弈游戏

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

給定n堆石子,每次每人能從一堆石子中取若干個石子(不能不取),最后不能取石子者敗

對于這個游戲,我們要判斷的是,給定局勢下,先手者勝還是敗

設先手勝的局勢為N-postion,先手敗的局勢為P-postion

可以移動到P-postion的局勢叫做N-postion,只能移動到N-postion的局勢叫做P-postion。

1、只有一堆的情況下先手勝

2、只有兩堆

  a、數目相等的局勢,先手敗,因為不管先手怎么取,后手都能在另一堆中復制先手的取法

  b、數目不相等的局勢,先手勝,先手可以在石子多的那一堆取走一定的石子,使得兩堆的石子數相等,然后參考情況a分析,可知先手勝

3、兩堆以上的情況。將局勢分為兩個子局勢x,y

  那么來分析一下局勢的加法與異或之間的關系,

  將局勢分為兩個子局勢n和m,如果兩個子局勢相同,則表示n==m,將局勢如果可以先手勝利,成為n勝或m勝

  局勢異或等于0,表示先手敗,不等于0,表示先手勝

  若n勝m勝 如果n==m ,n^m==0, 如果n!=m, n^m!=0 ,說明該情況下的局勢加法滿足異或

  若n勝m負 先手者在n局勢先手獲得勝利,然后使得后手者在m局勢先手,獲得失敗,所以先手勝 ?n!=0,m==0, n^m!=0,說明該情況下的局勢加法滿足異或

  若n負m勝 同上

  若n負m負 先手者在n局勢取得失敗,然后又在m局勢先手取得使得,所以最終失敗。 ? n==0,m==0,n^m==0,?說明該情況下的局勢加法滿足異或

所以Nim游戲的判斷是否先手勝就變成了判斷n堆石子的異或是否不等于0

那么怎么獲得必勝策略是怎么走的呢?即將某堆得石子取走k個,使得的石子異或等于0

設有n堆石子,a1,a2,...ai...an

對于ai,取得另外n-1堆得石子的異或s ?

如果 ai > s ? , ?那么k= ai - s, ?這樣子 (ai-k)==s ?即 ai^s==0

轉載于:https://www.cnblogs.com/justPassBy/p/4366524.html

總結

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

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