Day28 從象棋比賽作弊事件探討資料傳輸與資料結構 === 今天來做個嚴肅的學術探討,看標題就知道,今天肯定是個非常嚴肅的主題,我們要用學術角度來探討去年知名的象棋比賽作弊事件,**讓我們通過電腦對局所學到的知識,充分的應用到生活之中。**  去年底的時候一篇標題為『 **[陸「民間棋王」賽後浴缸排泄!遭質疑塞肛珠作弊](https://www.ettoday.net/news/20231226/2650870.htm)** 』的新聞引爆了ptt的C_Chat版,對此新聞的討論超過了20篇,接著我們就來深入探討一下這個事件。 我會按照研究背景、可行性評估、研究目的、文獻探討、研究方法與步驟、實驗結果,依序分享。 ## 研究背景 ### 浴缸門 2023年12月17日大陸河南棋手顏成龍參加2023年全國象棋民間棋王爭霸賽,戰勝吉林棋手張偉,拿到總決賽冠軍並獲得獎金10萬元(人民幣)。 但是賽後,顏成龍從飯店退房後,工作人員發現**浴缸非常渾濁,疑似有排泄物**。 這件事本來也沒什麼,大家可能就只是覺得這名棋手有點沒道德,為什麼要在浴缸裡拉屎,但有自媒體猜測顏成龍在**比賽時使用了「肛珠」作弊**,需要在浴缸裡把「肛珠」排出並清洗。 這一下就在網路上流傳開了,各種陰謀言論四起,雖然無從證實是否有作弊,但中國象棋協會還是將顏成龍的獎項、獎金取消,並且禁賽一年。 > 棋手通過在肛門裡藏入可收發訊號的智慧型肛珠作弊,通過括約肌有節奏張弛收縮來傳遞資訊。 這麼誇張的事情真的有可能做到嗎? ### 起源 我查了一下最早有這種所謂肛珠作弊的新聞應該是從西洋棋開始的,[新聞來源](https://www.epochtimes.com/b5/22/10/9/n13841980.htm)。 世界棋王**卡爾森(Magnus Carlsen)** 在一次比賽中爆冷輸給了美國新秀 **尼曼(Hans Niemann)**,終止了卡爾森的53連勝紀錄,隨後卡爾森也直接退賽。 下圖左邊為卡爾森,右邊為尼曼。  [圖片來源](https://today.line.me/tw/v2/article/JPogeDy) 卡爾森退賽後在推特上影射對手作弊,於是網路上開始有人思考各種作弊方式,其中討論最熱烈的就是所謂的「肛珠」了,連**馬斯克(Elon Musk)** 都在自己的推特轉發此新聞,並且引用了一段名言並加上了自己的見解(cause it's in ur butt):  真的是嘲諷至極,從此「肛珠」作弊就在西洋棋界中傳開來了。 ### 圍棋作弊事件 其實早在2018年圍棋比賽中就有出現一些作弊的事件了,比如中國知名業餘棋王胡煜清事件,[新聞來源](http://www.eweiqi.com/index.php?m=content&c=index&a=show&catid=206&id=29617)。 業餘棋王胡煜清在某次比賽中突然爆冷輸給了一位叫劉超(此為報名比賽的假名,真名為劉哲)的無名棋手,胡煜清當時在自己的朋友圈發出棋譜,感嘆自己老了,居然被沒有聽過的棋手,整盤棋輾壓一點機會都沒有,但是經過使用AI輔助覆盤,發現**對手的招法與AI吻合度將近百分之百**,以當前2024排名世界第一的申真諝來看,吻合度最高大概也就70%左右,這自然引起了大家的懷疑。 從下圖可以看到這位棋手下棋時都將手機放在胸前的口袋,並且鏡頭朝向棋盤。  [圖片來源](https://www.hk01.com/%E5%A4%A7%E5%9C%8B%E5%B0%8F%E4%BA%8B/181896/%E6%B1%9F%E8%98%87%E7%B4%A0%E4%BA%BA%E6%A3%8B%E6%89%8B%E5%88%A9%E7%94%A8ai%E4%BD%9C%E5%BC%8A%E6%88%B0%E5%8B%9D%E6%A5%AD%E9%A4%98%E6%A3%8B%E7%8E%8B-%E4%B8%8A%E4%BA%A4%E6%89%8B%E6%A9%9F%E5%BE%8C%E5%86%8D%E5%B0%8D%E9%99%A380%E6%89%8B%E5%B4%A9%E7%9B%A4) **注意他的坐姿,後面有彩蛋。**  後來主辦單位請劉超將手機收起來,結果之後劉超的表現判若兩人,很快就輸掉了下一場比賽,最後還直接棄權了。 ### 德州撲克J4o事件 這應該也是前幾年德州撲克圈最有名的一手牌了,簡單說就是Robbi在一手不可思議的牌中用J4o(J跟4不同花)去抓了Garrett的炸唬,被Garrett指控作弊。 這件事至今仍是眾說紛紜,畢竟他只有一手牌,沒有像是Mike Postle事件之類的讓大家這麼篤定,這邊提出來只是覺得艾倫哥哥在影片中提到的**震動**非常有趣,大家可以去看看影片。  圖片擷取自[賭場作弊詐賭嫌疑新發現! 震動的級數對應不同的暗號!?](https://youtu.be/cGm4HSGmHcA?si=tEY8sbwdLchhx4hs) **免責聲明:我沒有要評論上述的所有人有沒有作弊,只是要探討關於傳輸訊號的方式,畢竟我們這是很嚴肅的學術探討。** ## 可行性評估 接著我們就來評估一下是否真的有可能通過所謂「肛珠」來作弊呢? 這看著匪夷所思的事情還真的有國外youtuber實際示範了。  圖片擷取自[We Used An Adult Toy To Beat A Chess Grandmaster](https://youtu.be/AqqQ-xNAcCw?si=plTpEvrxRtLic0cu) 影片中是使用情趣用品,通過振動來表達棋盤座標,藉此方式來傳遞訊號。 比如移動d2的小兵到d4,就是先震動4次停一拍再震動2次,表示要移動的棋子,接著震動4次停一拍再震動4次,表示要移動到的位置,以下將此方式稱為**座標法**。  圖片擷取自[維基百科](https://zh.wikipedia.org/zh-tw/%E5%9C%8B%E9%9A%9B%E8%B1%A1%E6%A3%8B) 彩蛋:影片中的主角面色凝重並且坐姿似乎與前面的某人的坐姿有點相似,~~看到這裡我好像懂了點什麼~~。  看完西洋棋我們再回頭看看象棋,西洋棋是8x8的棋盤,象棋則為9x10:  從影片中看起來這種作弊方式似乎是可行,但是得優化傳遞訊號的方式! 假設每個棋子移動的機會相等,那**平均每走一手棋就需要震動20次**,而且象棋一盤棋的平均手數也比西洋棋要更多一些,所以如果象棋想用跟西洋棋一樣的座標法,估計棋手本人會先~~肛裂~~體力不支。 ## 研究目的 我們需要更為有效的方式來傳遞訊息,**減少震動次數,防止肛之棋士的括約肌受傷**。 ## 文獻探討 這裡實在是找不到相關的論文,所以我參考了ptt上各位鄉民大神的發文,以下提出幾個作為探討。 ### 方法1 老祖宗的智慧 [Re: [新聞] 陸「民間棋王」賽後浴缸排泄!遭質疑塞肛](https://www.ptt.cc/bbs/C_Chat/M.1703567961.A.0A4.html) 這名網友提出了使用[中式記譜法](https://zh.wikipedia.org/zh-tw/%E8%B1%A1%E6%A3%8B#%E4%B8%AD%E5%BC%8F%E8%A8%98%E8%AD%9C%E6%B3%95)來表達棋子的移動,如下圖我幫大家圈出重點了。  通過中式記譜法,將座標法平均20次的震動縮減到了13次。 這個方式其實有很多的空間浪費,在中式記譜法中的四個字的可能性有: 7 x 11 x 3 x 9 = 2079種 但是卻使用13碼來編碼,用了 $2^{13} = 8192$ 來表達2079種走法,顯然還有很大的改進空間。 ### 方法2 情趣用品大師? [Re: [新聞] 陸「民間棋王」賽後浴缸排泄!遭質疑塞肛](https://www.ptt.cc/bbs/C_Chat/M.1703588431.A.29F.html) 這是我在ptt上看到震動次數最少的做法了,但是... 這名網友說要捨棄棋盤式的絕對位置思考,改用相對位置思考。 提出了5種震法?!  最後4~6震就可以表示走法。  簡單分析一下 $5^6 = 15625$ ,這比方法1還離譜,而且括約肌真的有辦法感受出這五種不同的震法嗎? 如果有親身實驗過的人一定要留言告訴我。 ### 方法3 摩斯密碼 有位網友在很多篇文章底下都有推文,分享他的摩斯密碼法,所以這邊也來探討一下。  我只能說這名網友對摩斯密碼可能有點誤解或是諜報影片看太多了。 我們先來看一段摩斯密碼  但是根據不同的停頓方式會表達出不同的意思。  參考下圖,字元內部的停頓是1拍,字元之間的停頓是3拍,單詞之間的停頓是7拍。  圖片來源[Morse code](https://en.wikipedia.org/wiki/Morse_code) 所以要正確區分出傳遞的暗號,你的**括約肌還得要打節拍**,而且比座標法更難,不是停一拍而已,而且舉例的是兵四平五,兵只有兩碼,如果改成馬那就是四碼,如果改成什麼馬三進四就會得到摩斯密碼法中的**worst case 16碼**,還多此一舉將棋子與走步轉換成其他暗號。 ### 方式4 走步轉換法 [Re: [新聞] 陸「民間棋王」賽後浴缸排泄!遭質疑塞肛](https://www.ptt.cc/bbs/C_Chat/M.1703595379.A.FE9.html) 這是我從ptt看到最佳的做法,通過對所有走法編號,這樣就**只需要震7次**,只使用了7個bit,$2^7 = 128$ 比中式記譜法還要好。   那為什麼可以做到比中式記譜法還好呢? 這邊就**跟前幾天殘局庫的壓縮原理相同**了,他的index就代表了哪個棋子要走什麼走步,假設算出來index是79,就查表發現79是砲往前2格,這邊的查表等於是查你的記憶,所以原po才會說有點難背,因為你**需要將119種走法的編號都背下來**。 ### 其他方法 我覺得很多網友都還蠻有創意的,大家可以去看看。 * [編碼大師](https://www.ptt.cc/bbs/C_Chat/M.1703607941.A.2C3.html) * [10震法](https://www.ptt.cc/bbs/C_Chat/M.1703566544.A.866.html) ## 總結 這篇真的是學術探討。 今天分享了各種作弊事件與編碼方式,明天再來繼續分享研究方法跟實驗結果,我參考了很多網友的想法提出了一個新的編碼方式,大家也可以想一想該怎麼編碼比較好。 這張圖不能只有我看到...  [龍王的工作](https://www.ptt.cc/bbs/C_Chat/M.1703654384.A.28D.html)(慎入)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.