工友突然撩起話題:「圍棋有個情況,叫做『劫』。」16Please respect copyright.PENANAEbliMvLxM9
他接着解釋,例如棋子如此排列時:16Please respect copyright.PENANADMvGz6G6Gx
黑方可能選擇這樣下子,除掉中間的白子:
可是,接下來,白方可能會用同樣手法下子,除掉中間黑子。16Please respect copyright.PENANA7X1XUi2LvW
這導致棋局回到先前狀態。為免棋局無限重複,圍棋規則把這種情況稱為「劫」,並明確禁止在劫中重複先前狀態。工友還介紹了「劫材」、「消劫」這些詞彙,以及相關的策略運用,在此不贅。
技工聽了,搖頭歎息:「不行!這個規則太戇居!」
工友不明白:「不戇居!這個規則有必要,否則棋局會無限loop!」
技工看他不明白,只好努力解釋:「你明白嗎?這個規則的戇居……」但技工一時詞窮,只好用技工的風格繼續說:「……那種戇居程度,就像歐幾里德第五條公設一樣戇居!」
工友呆了呆,然後恍然大悟:「哈哈哈!我明白了……奇怪,為什麼我會聽得明白?」
歐幾里德第五條公設「平行公設」為人詬病了超過二千年。平行公設不如其如4條公設般直觀,被認為稱不上不證自明。這使得數學家努力了二千多年,希望把平行公設降格為定理。直到19世紀才總算確定平行公設無法被證明,必須是公設。
同理,圍棋的基本規則很像很優雅,當中卻又有了劫這個漏洞,使得不得不加上禁止重複的規則強行堵塞漏洞。為什麼圍棋規則不能一開始就防止劫的出現?不過,圍棋有數千年歷史,數千年來沒有辦法,或許就是沒有辦法。16Please respect copyright.PENANAKtceEeUA5e
技工還向工友提出另一個不優雅之處。禁止重複的規則使得棋盤不能完整反映棋局狀態,棋手、裁判得記着上幾步的狀態。我們programmer稱之為side effect、impurity、global state。我們programmer很忌憚這種情況,因為這使得程式碼較難分析。16Please respect copyright.PENANAt1CDFkButo
最後,技工問:「為什麼突然說這個話題?」
「無呀,突然想塞啲知識落你個腦度。」
頂~😑
Image Sources
- thunderdan81. Licensed under CC BY-SA 4.0. Wikimedia Commons, 24 September 2014, https://commons.wikimedia.org/wiki/File:Ko_Dia_1.jpg.16Please respect copyright.PENANAU7rhxW7HKW
- thunderdan81. Licensed under CC BY-SA 4.0. Wikimedia Commons, 24 September 2014, https://commons.wikimedia.org/wiki/File:Ko_Dia_2.jpg.
- thunderdan81. Licensed under CC BY-SA 4.0. Wikimedia Commons, 24 September 2014, https://commons.wikimedia.org/wiki/File:Ko_Dia_3.jpg.16Please respect copyright.PENANAE4FpYv4WB1