五子棋先下的人一定贏
五子棋先下的一定贏嗎?有什么算法原理可以說明這個問題?下面是有五子棋解法,歡迎參閱。
通常大家玩的五子棋分為帶禁手和不帶禁手兩個版本(前者一般稱之為五子棋Gomoku,后者稱之為連珠Renju),無論哪一個版本,先手黑棋均必勝。
所謂黑必勝的意思是,只要黑棋按照一定的方式下,白棋選擇棋盤上的任何一個點都不可能贏棋。
其實在電腦出現(xiàn)之前,五子棋的玩家就發(fā)現(xiàn)黑棋采取某些開局贏面的極大,也懷疑有先手必勝的方法。但沒有人能夠真正“證明”出來白棋無論怎么下都是必敗的——這個結(jié)論最終還是通關(guān)電腦來證明的。
其中不帶禁手是1992年VictorAllis通過編程證明黑必勝的,禁手規(guī)則是只針對黑棋的,簡而言之是黑棋只允許使用沖四活三這一種贏法(當(dāng)然不排除白棋故意沖四不擋這種方法)。設(shè)計的目的也是為了限制黑棋的巨大優(yōu)勢,白棋也多了逼禁手這兒一種贏法。但后來人們也逐步發(fā)現(xiàn)帶禁手后,黑棋依然似乎能不敗。直到后來,也有人證明,帶禁手執(zhí)黑也可以必勝。
帶禁手的是 2001 是 Janos Wagner 第一次證明黑必勝的,這個后面的證明比前面的證明要強(qiáng)很多,因為按照帶禁手的走法,不帶禁手也一定必勝,但倒過來未必。
這還不說,為了進(jìn)一步削弱黑棋的優(yōu)勢,國際上推出五手兩打(就是黑棋的第三步需要下兩個點,但由白棋挑選讓其下較弱的哪一個)的規(guī)則??墒侨藗儼l(fā)現(xiàn)黑棋帶禁手依然是必勝。也就是說,黑棋必勝不僅僅有一種方法,而是至少有兩種以上(來回應(yīng)各種變種的第四步)。
從實踐的角度來講,網(wǎng)上是可以搜索“地毯譜”(尤其是花月和蒲月都是五手兩打必勝),一般在幾百兆左右,可以用renlib軟件打開,所謂地毯譜的意思就是黑棋會指定下法,但白棋每一步都可以選擇棋盤任意位置,最后黑棋必勝。也就是說,只要按照此棋譜下棋,五子棋世界冠軍都一定會輸給你。
所以正式的比賽才會有三手交換五手兩打,山口規(guī)則(五手n打)這些復(fù)雜的規(guī)則來平衡比賽。但這些規(guī)則也是逐漸被人破解,五子棋的比賽已經(jīng)很大程度不是在考驗自己的臨場發(fā)揮,而是考驗選手對于各種開局的記憶情況。
另外針對有人質(zhì)疑既然五子棋必勝,為什么還要玩:
必勝并不代表去網(wǎng)上黑先開浦月、花月就一定人擋殺人,佛擋殺佛。必勝的各種分支套路也不是那么容易記住的,諸位可以和tito2014或者弈心執(zhí)黑體驗一下(高手繞道)。所以各種對戰(zhàn)平臺上,就算是在非禁手區(qū)拿到勝率遠(yuǎn)超 50%也不是不可能的。
另外不帶禁手的五子棋是屬于一類更為普遍的m,n,k游戲(m,n,k-game)的一種特例,即15,15,5。m,n,k游戲是指m行n列,輪流下子,連成k個算贏。這個在數(shù)學(xué)中專門有研究如果在最理想下法(Perfect Play)的情況下有什么樣不同的結(jié)果,比如標(biāo)準(zhǔn)的三連棋(Tic-tac-toe)是3,3,3 是一個平局,同樣只有六路棋盤的五子棋也是平局,當(dāng)然上面我們已經(jīng)說明了15,15,5是先手必勝。m,n,k游戲只有先手必勝和平局兩種結(jié)果。由于每下一個子都一定會對下子一方那一方有優(yōu)勢,所以可以通過反證法證明m,n,k游戲里不可能有后手勝利的情況。如果后手有勝利的方法,那么先手可以提前“借鑒”過來實現(xiàn)必勝(Strategy stealing)。
另外除了規(guī)定復(fù)雜的開局和禁手規(guī)則,其實還有一個出路:
除了采取對先手采取各種限制的方法,2003 年被吳毅成教授發(fā)明的連六棋(Connect6)也非常類似五子棋,難度很高,但六子棋沒有先手優(yōu)勢——因為每一步都下兩個子,除了第一步下一個子,這樣保證雙方每次下棋時,都可以比對方多一個子。AI目前計算的結(jié)果也是,沒有發(fā)現(xiàn)先手比后手有更大的優(yōu)勢。
既然雙方都沒有優(yōu)勢,六子棋下滿整個(圍棋19x19棋盤)都沒有分出高低都是有可能的。(這個游戲已經(jīng)不再是m,n,k游戲了)
不得不說的是,雖然有個別比賽(gomocup說你呢)還是在用限定規(guī)則的五子棋做ai比賽,但是正經(jīng)的編程奧賽是沒有五子棋的比賽(93年就沒了好不好),而被connect6這種簡約的規(guī)則所取代。Connect6的解決難度幾乎與圍棋相當(dāng)。
看過五子棋先下的人一定贏的人還看了:
2.下五子棋贏的方法
5.怎么下五子棋贏