nim 博弈论
幾種nim游戲
- 1.排石頭游戲
- 2.巴什博奕(Bash Game)
- 3.威佐夫博奕(Wythoff Game)
- 4.nim堆
- 5思考題
- 總結(jié)
1.排石頭游戲
給你一排n個石頭,每次只能取一個或兩個,求必勝策略
先討論石頭是奇數(shù)還是偶數(shù),奇數(shù)就從中間拿一個,然后,對手拿幾個,你就從與它對應(yīng)的位置上拿幾個。偶數(shù)的話就從中間拿2個。
2.巴什博奕(Bash Game)
只有一堆n個物品,兩個人輪流從這堆物品中取物,規(guī)定每次至少取一個,最多取m個。最后取光者得勝。
n=s+(m+1)*k
先手拿s個,然后對手拿l個,你就拿m+1-l個。
3.威佐夫博奕(Wythoff Game)
有兩堆各若干個物品,兩個人輪流從某一堆或同時從兩堆中取同樣多的物品,規(guī)定每次至少取一個,多者不限,最后取光者得勝。
這個游戲所包含的數(shù)學(xué)原理很深,先手必敗 ,公式是a=i*(1+sqrt(5))/2(I=0~n);b=a+n;
參考編程之美,里面將原理講的非常詳細(xì)。
公式證明就不寫了,主要就是證明a,b包含了整個自然數(shù)集,并且不重復(fù)。1/a+1/b=1。a-b=1。聯(lián)立方程組,求解。這里要引用一個定理,參考博客https://blog.csdn.net/maththinker/article/details/47757445
4.nim堆
有n堆各若干個物品,兩個人輪流從某一堆取任意多的物品,規(guī)定每次至少取一個,多者不限,最后取光者得勝。
m1 ^ m2 ^ m3 ^ m4…=0表示先手必敗
改變一個值肯定使它們異或不為0 。如果一開始不為0,那么就找到這個改變的數(shù)使它變?yōu)?。
5思考題
這個思考題就比較有意思了,但是不難,不妨先將1,2,3,4,5,6,7等較小的局面給推出來。
我們可以知道n>1,n=2時,我拿只能拿一個,你就可以拿完,顯然是必輸局,暫稱為N。n=3時,顯然也是N局,n=4,顯然不是N局,暫稱為Y局,為了保證不一開始就輸,我只能拿1個,你為了不輸也只能拿一個,然后我就能拿完。n=5時顯然是必輸局勢,它只有兩種拿法,一種是拿一個,拿完后局勢就變成4,也就是你的Y局,拿2個,那就接輸了。所有我們不難發(fā)現(xiàn)一個規(guī)律,將前一個N局勢稱為Nn-1,(n-Nn-1)*2<Nn-1,讓后者不能一次拿光并且你處在N局勢,符合這個條件就是Y局勢。N局勢顯然就是不能轉(zhuǎn)換到前一個N局勢的數(shù)。
主要難點就在于對于狀態(tài)轉(zhuǎn)換的處理。如何將局勢轉(zhuǎn)換成必勝局勢,讓對手必輸。
總結(jié)
總的來說,博弈論游戲有很多,也沒人能將所有公式都列出來,也不必將所有公式都背下來,關(guān)鍵是如何分析問題,如何設(shè)計一個方法來解決它,更深層次就可以推導(dǎo)出它的數(shù)學(xué)原理。
總結(jié)
- 上一篇: uva 10305拓扑排序
- 下一篇: 编程之美之控制cpu线