首頁 >幻言•仙俠 >科技巫師 > 第487章 打敗你的不是我,是二進位(數學向

第487章 打敗你的不是我,是二進位(數學向

2023-10-22 02:32:52 作者: 孫二十三
  兩分鐘一盤的方式,就這樣持續了好久好久,一直到西邊的太陽大部分沉下了山, 只剩下一條紅邊發著光,把棋盤上棋子的影子拉得老長。

  「啪!」

  李察再一次落子,小丑一掃棋盤,就看出問題了,直言道:「我又輸了,不過不要緊, 我們再來!我不信,我一盤都贏不了。」說著話,小丑就開始收拾棋盤, 把所有的白子撿起。

  李察卻是出聲拒絕:「不用了小丑先生,即便再下一百盤,只要我持黑子先走,你就必定輸,這和棋藝無關,和數學有關,是經過計算的。」

  「嗯?」小丑停住撿白子的動作,看向李察,出聲問,「什麼意思?」

  「我的意思就是,五子棋的規則雖然簡單,但經過計算卻是存在漏洞,在沒有任何限制的情況下,先手黑子是必勝的,對, 必勝——只要按照特定的方式走,和任何人下, 都是必勝。

  一般來說, 為了公平,正常對局中黑子會有『三三禁手』、『四四禁手』、『四三三禁手』、『四四三禁手』、『長連禁手』。

  所謂的『三三禁手』,就是黑子落下一個子,會同時形成兩個或兩個以上的三連子,這是在先手前提下,白子根本無法抵抗的。

  因此,正常對局中,黑子一旦走出『三三禁手』或者被迫走出『三三禁手』,就會判定為負。但現在我們之間的對局,沒有禁手,那麼你自然也就沒有獲勝的任何希望。」

  「這也能算出來?」小丑還是有點不太相信。

  「事實上,越是簡單的遊戲,越容易計算。」李察攤手道,「如果你有所懷疑的話,我們可以再換一個遊戲玩。」

  「什麼?」

  「拿棋子的遊戲。」李察道,說著話把棋盤拿開,抓了一把棋子,數了數一共十九個,分成三堆。

  第一堆三個棋子,第二堆七個棋子,第三堆九個棋子。

  「規則是這樣的。」李察道,「我們兩個人輪流從這三堆中拿棋子,每次都可以選擇任意一堆拿。拿的棋子數量,最少為一個,最多一堆全部拿走。等到剩下的最後一個棋子誰拿,誰就輸。」

  頓了頓,李察看著小丑繼續道:「這個遊戲和五子棋不一樣,但同樣可以通過數學計算出來,所以先手也是必勝的。」

  小丑眼睛閃了閃,盯著棋子思考了半晌:「我不信,我現在就想到了好幾種後手取勝的方式。」

  「既然這樣,那我們試一試。」李察道,先手就從最右面九個棋子中的一堆中,拿走了五個。三堆棋子,立刻變成了「三七五」的樣子。

  小丑想了想拿走了最右面剩下的四個棋子,變成了「三七」的樣子。

  李察跟著拿走了第二堆的四個棋子,變成「三三」的樣子。

  小丑盯著棋子看了好半天,沒有下手,看向李察問道:「我現在是不是算輸了?」

  「對。」李察點頭,「雖然還沒有出結果,但你已經輸了。

  現在是3:3的情況,你如果一次性拿走一堆,我可以拿走剩下一堆的兩個,留下一個給你,你輸。你如果拿走一堆中的兩個,我拿走另外一堆,留一個給你,你輸。

  出于謹慎,你從一堆中只拿一個棋子,那我就從另一堆中也拿一個棋子,變成2:2。

  而2:2和3:3,沒有本質上的區別——你拿一堆,我拿另一堆的一個,給你留一個,你輸。你拿一堆中的一個,我把另一堆全部拿走,給你留一個,你還是輸。無解。」

  「但這只是一種情況,還有其他情況才對,不可能只是因為你先手,就一定贏。」小丑堅持道。

  李察搖搖頭:「的確不是只有著這一種情況,全部的情況大體可以分為三種,也就是演化到最後,先手留下的必勝形態。

  第一形態,最極端,給你剩一堆,且只有一個棋子。無論你拿不拿,都輸。

  第二個形態,給你剩下兩堆,只要兩堆數目一樣,無論有多少,最後統統變成2:2,或者第一形態,你輸。

  第三個形態,剩餘三堆,複雜一些,但最終還是會一點點的變成前兩種,只要先手不出錯,後手的你依舊輸。」

  「但你先手怎麼能不出錯?」小丑聲音變大,略顯失態,「你又不知道我是怎麼想的,怎麼能控制我的拿法?而你既然不能控制我的拿法,又怎麼能保證你每次拿的都不會出錯?」

  「沒有這麼複雜的。」李察道,「在計算中,我不需要知道你怎麼拿,只要給你一個平衡態就行。簡單講的話,首先,我把每一堆棋子的數量都轉換成二進位橫向排列。對了,二進位就是把普通計算的『逢十進一』變成『逢二進一』,比如這樣。」

  李察說著,用細長的一個棋子,在地上分別寫下三行數字:

  0011(3)

  0111(7)

  1001(9)

  接著在三行數字下面劃了一道橫線,在橫線下把數字相加,就變成了數字:

  1123

  「有這麼一個定義,一個數字是2的倍數便是偶數,不是的話是奇數,1123四個數字中,存在奇數,此時就是非平衡態。

  而我要做的就是,通過拿棋子,給你變出一個平衡態來,比如最開始我從第三堆拿出五個,變成了平衡態,也就是這樣。」

  說著話,李察抹掉寫的數字,用細長的棋子再次寫起來:

  0011(3)

  0111(7)

  0100(4)

  ——

  0222

  「現在所有的數字都是偶數,就是一種平衡態,在平衡態的情況下,無論你怎麼拿,我做的就是把它繼續變回平衡態,這樣到最後,輸的就是你。

  所以,你怎麼拿都沒關係,只要我先手,並且拿出一個平衡態來,你就輸了。這是先手必勝的原因——打敗你的不是我,而是數學,是二進位。

  這個要比五子棋的原理簡單,計算量也少,你應該能想明白。」

  李察說完了,小丑沉默。

  沉默中的小丑,死死的盯著李察寫的數字看了半天,接著自己拿棋子來開始在地上書寫,然後分出三堆棋子不斷模擬。模擬的結果,和李察說的一樣——每一次都是先手必勝。

  最終小丑看向李察,表情很複雜。

  李察開口了:「小丑先生,你看到了吧,我和你玩『小丑棋』很難玩過你,但是你要是和我玩『五子棋』、『拿棋子』之類的遊戲,你也永遠贏不了。之所以這樣,和智慧、謙遜無關,只是一個選擇的問題。

  你之所以選擇和我玩『小丑棋』,是因為你在玩之前就知道會贏。而我同樣知道,和你玩『五子棋』、『拿棋子』我也會贏。這是擅長領域的差異而導致的,也可以看作是主場不同。正因此,我才不怎麼認同你最開始說的話。」

  「對了。」李察看向小丑,認真的問道,「話說,小丑先生,你還記得你本來和我說什麼,對吧?」

  「我——」小丑站起身,看著李察,目光一連變了好幾次,最後深吸一口氣道,突然轉身,「木台建好了,我該表演了,遊戲就先結束吧,有機會……我們下次再聊。」

  「還有下次嗎?」李察問。

  「也許。」小丑說著,頭也不回的向著木台走去。

  這時西方的太陽徹底落山,天空跟著一塊黑下去,李察看著小丑的背影,眼睛微眯。

  ……

  ps:拿棋子的原形,就是分火柴,算是數學上一個經典的問題,網上有很多解答,文中的二進位解法是我在知乎一個答案上看到的,算是通俗易懂的一種——至少我能弄懂,有興趣的同學可以和自己的身邊人玩玩這個遊戲,小心別挨揍就行。

  話說,我突然發現,我現在比上學的時候,更喜歡學習了。是錯覺嗎?嗯,一定是錯覺。
關閉