如何有系統地玩 Wordle
近期大家都見到好多人無端端Post一啲黃色綠色黑色格仔,加埋一個數字,一個分數咁,我諗大家都知,呢個係一隻叫做Wordle嘅每日拼字遊戲。
呢隻Game乜都唔使裝,只需要撳入條Link度就有得玩,要玩嘅嘢係你估一個五個字母嘅英文字,如果唔中就係灰色,中左就綠色,齋中字母唔中位置就係黃色。
非常簡單嘅一隻Game,但係好多人都對呢隻Game有啲誤會,以為係一隻拼字嘅遊戲。

但玩左大約一個星期之後(佢每日有一個新嘅字),我就明白,呢個係一個邏輯加數學嘅遊戲,理論上,你唔需要識任何一個英文字,都可以喺六個機會之內估得到。
首先,生字入面英文字母嘅出現次數係極度唔平均嘅,呢個世界有一隻叫做Scrabble嘅拼字遊戲,佢比每個字母都有一個分數,越高分,就代表越少出現喺生字嗰度。
1 point — A E I O U L N S T R 2 points — D G 3 points — B C M P 4 points — F H V W Y 5 points — K 8 points — J X 10 points — Q Z
但呢個得分表有個問題,就係佢係計晒所有生字長度。由兩個字母嘅 TO,到OXYPHENBUTAZONE,全部計晒,咁我地玩Wordle呢,只係需要理五個字母長嘅生字,所以直接用Scrabble嘅計分法係唔準確嘅。
我想有一個準確嘅機會率,無論係一個字母出現喺任何位置嘅機會率,同一個字母出現喺特定位置嘅機會率,我都想知道。
我上Google Search咗幾個"5 letter word list",由幾百個字到幾千個字不等,最後,我發現GitHub有人直頭放咗所謂Wordle Word List出嚟,大概係啲Geek喺Chrome撳F12(?)做嘅。
咁人類同猿猴嘅分別係乜呢?就係人類識得用工具,所以作為人類,我將個List貼落Google spreadsheet (用Excel都得,一樣㗎啫),然後開始拆字。

咁成2315個字,人手拆梗係唔掂啦,用Excel Formula拆
=MID($A2,B$1,1)
MID 係專用嚟拆字嘅Function,$A2係我要拆嘅字,B$1係開始嘅字母,而1係我要拆出嚟嘅總長度。
即係如果拎走晒D座標,條Formula係咁嘅:
=MID("aback”,1,1)
咁拉落去之後,一秒間,抬頭望過,就已經拆好晒啦。
然後要得出每個字母出現嘅機會率,首先,就係數下究竟啲字母出現咗幾多次。

你可以用Pivot Table 做,亦可以好似我咁,用CountIF 嚟做:
=COUNTIF(Words!$B$2:$F$2316,$A2)
$A2係A,咁上面呢條Formula就可以計到喺拆好嘅Words入面(不計位置,睇晒五個Column,Words!$B$2:$F$2316),A出現左幾多次。
而要計佢喺唔同位置嘅次數,只需要收窄個範圍到一個Column,就搞掂。
=COUNTIF(Words!B2:B$2316,$A2)
之後用數到嘅數除返2315,就可以有個比較 ,知道每個生字入面,任何字母出現嘅機率啦。

用總出現機率嚟排列呢堆字母,我發現,頭九個字,即係EAROTLISN,對於其他字母係有一個壓倒性嘅優勢喺度。
喺呢度就出現同直覺違背嘅情況,我一開始都覺得,一定要試晒AEIOU先,因為每個字都一定要有Vowel嘛,如果唔係就只能讀到食麵咁嘅聲一直SHZHHSHH,但原來,U嘅出現率,係比C更低,所以如果要搵幾個開頭嘅字,U字係可以放埋一邊唔考慮住。
而家有晒啲字母出現嘅機會率,我地可以開始真正去玩個Game啦。
除非你玩Hardmode,否則,我覺得呢個遊戲係分為兩個階段,第一個階段,目的係獲取最多嘅資訊;第二階段,當你覺得資訊足夠之後,你嘗試去解答。
第一個輸入嘅生字,一定係第一階段,因為我地乜都唔知,所以策略上,我地應該用一個有齊EAROT嘅字,而呢個Word list上有齊EAROT嘅有四個,分別係 ERATO、OATER、ORATE仲有ROATE。
唔好問我呢四個字點解,頭先我已經講咗一次我唔識英文。
由於E字喺最尾嘅生字有18.23%,係五個字母入面最高,所以第一個生字嘅選擇得返ORATE同ROATE。
O喺第1係1.77%, R喺第2係11.53%; R喺第1係4.54%,O喺第2係12.05%。
結論係ROATE比較好,而且用ROATE呢個字,第一行全黑嘅機率,只有: (1–53.26%)*(1–42.29%)*(1–38.83%)*(1–32.57%)*(1–31.49%)=7.62%
咁正常嚟講,估完第一個字,我地平均只會得到1.98個黃/綠色,好彩嘅話,有三四個黃/綠色,直接進入第二階段,但如果只係得一至兩個黃/綠色(大部份情況),咁就應該要試多另一個字,以獲取更多嘅資訊。
而試嘅呢隻字,係**唔應該**有ROATE入面任何一個字母(除非你玩Hardmode),因為每個試嘅字母都係資源,唔可以浪費資源喺一啲已知嘅事實上面。
咁排名向下有LISNCUYDHPMGB,LISNC係無字砌到出嚟嘅,而LYSIN或者SULCI都係唔錯嘅選擇,可以跟據第一個生字得到嘅Hints嚟調節,甚至乎可以下試到PMGB,但LIS一定要有,因為佢地全部都有超過20%嘅出現率。
然後要記得,試咗十個唔同字母,除咗知道邊啲字會出現喺答案之外,知道邊啲字**唔會**出現喺答案亦都係非常重要嘅資訊,而且經過再五個字母之後,我地得到嘅黃/綠色平均值已經嚟到3.28(SULCI)至3.31(LYSIN),所以到左第三個生字,我地基本上一定可以進入第二個階段,嘗試去作出解答。
咁用而家我地有嘅黃/綠/黑字資訊,去砌生字,坊間有好多工具幫到手,好多原本都係字典或者Scrabble工具嚟,但其實我地呢個Google spreadsheet (or Excel),其實都可以做到。
今次就真係要用Pivot Table啦,嚴格嚟講,我係要用盡佢Pivot Table個Filter功能。

加之前,去Word list度加多一個Column,都係Word,Data同Word一模一樣,用嚟Display嘅;之後加Pivot Table,揀返我地嘅Word list做Data Range,然後會出現下面嘅畫面:

將 Word 放落 Row嗰度,然後將 1 2 3 4 5 同另一個 Word 都放落Filters度。
咁個Pivot Table就已經Set好,可以用,例如你知道第二個字母係O,第三個字係I,而第五個字母係T,咁就喺Filters度2㨂O,3揀I,5揀T,之後個Pivot Table就會出現以下結果。

Boom,所有-OI-T嘅字全部出晒嚟,而右邊嗰行,係因為有傳聞話出過嘅字唔會再出,所以我入咗2022年所有答案入去,再Vlookup睇下有無撞嘅。
如果你得一堆黃色,就可以用Word嗰個Filter,入啲Combination落去試,佢係可以Contain any letter嘅。
然後,如果答案多過一個,例如上面個例子咁,我地S/N一定試過,所以唔係綠,都一定係黃,而機率低嘅FHJMP,如果用返上面個機率表嘅次序去撞,有三次機會,加埋仲有Past Appearance用嚟過濾咗個P,理論上都仲有機會撞唔到,都仲有機會X/6。
咁呢啲情況,我地就要返去第一階段,例如上面個例子,FOIST、HOIST、JOIST同MOIST,咁有三次,即係我可以整任何一個有HMFJ其中兩個字母嘅字嚟獲取資訊,咁無論中同唔中,都Foul走咗一半字母,然後就可以避免咗X/6呢件事嘅發生。
最後,我前排先喺Facebook講,如果我生個仔,我保證佢聽到「打機」呢兩個字就驚!我諗大家睇完我呢篇可能就會明點解。
「個普攻用咗你個GCD,點解你覺得偷嗰一下DPS會高咗!」
「攻速慢武器高爆擊點解比攻速快武器低爆擊效益高?」