最近wordle刮起全球一陣旋風,所以想說也來玩看看!!
首先你要有個字典檔用來搜尋
可以用Linux內建的/usr/share/dict/words
或者是用wiktionary提供的常見字典檔
我是用wiktionary提供的,然後再用指令
就可以取得常見的5碼單字了
Download five.txt
我通常會先輸入yours跟abide兩個單字
因為這2個單字包含了所有母音.
當然你也可以用下面這段程式
來找出含不同母音最多的單字
然後選喜歡的字來用.
其實w字母也算是半母音
只是機率太低就先不考慮
在這裡我們先輸入 yours
(另外有人對開局用字的研究並不是crane)

從第一筆資料可以得知,有字母O、S
但是O不在第2位、S不在最後面
以及沒有YUR字母
因此我們先把o跟s找出來,再去做invert-match
最後再做yur字母的invert-match
到目前第一步,剩下的單字還是太多,因此再輸入abide

發現abide都沒有,這可以過濾掉很多單字了
再把指令新增abide字母進去
看了一下結果,幾乎都是s開頭的字
那麼就隨便找一個s開頭的單字來猜
(註:後來覺得,第3次最好是找字母都無重複的單字來猜)

從spoon結果可以看到,有S、O、N
而且位置剛好都在1、3、5
並且沒有P字母,O也不在第4位
(記得這例子不能把字母O放進灰色子集裡,這樣會形成空集合)
因此就可以再多加條件進去
最後看到1筆結果!!
Bingo!!

其實wordle出現的單字,有時候five.txt檔案並沒有
當然你可以選擇更大的字典檔來玩
或者是直接去wiktionary網站找.
譬如之前一個字inert在這個five.txt沒有
玩到最後的線索是i?ert,第2個字母不知道
就去wiktionary測看看還有哪些字.
假設你已經確定 bkwamn 這些字母不在單字裡面
那就把這串字母存成 omit.txt
有找到就會把單字以檔名的方式存下來.
當你有n個未知數時,就寫n層迴圈下去跑
然後一有結果就拿去輸入看看,跑邊跑試
如果猜中m個字母就立馬把程式改成n-m層迴圈
可以減少很多等候時間.
不然n>=3時,整個跑完要等很久.
當然還可以用一些英文單字的特性下去猜
譬如在5長度的單字下,
S開頭的單字最多(這個性質在全部英文單字裡也是如此),
S結尾的單字也最多(這個性質在全部英文單字裡也是如此)
然後開頭是Q的話,第2碼一定是U(這個性質在全部英文單字裡幾乎如此)
如果第2碼是H的話,那第1碼幾乎是s,c,t,w居多(這個性質在全部英文單字裡也是如此)
留言列表