提高WordleBot(任何编程语言通用)的速度



我正在开发一个Wordle机器人来计算最佳的第一个(和后续(猜测。我假设所有13000个可能的猜测(目前(都是一样的,我遇到了一个巨大的速度问题。

我想不出一种有效的方法来避免三重for循环,每个循环有13000个元素。显然,这慢得离谱,在我的笔记本电脑上需要大约20个小时才能计算出最佳的第一个猜测(我认为由于有效单词较少,后续猜测会更快(。

在我看来,我肯定需要第一个循环来测试每个单词作为猜测。我需要第二个循环来找到每个可能的答案的颜色/结果。然后,我需要第三个循环,看看在给定猜测和颜色的情况下,哪些猜测是有效的。然后,我找到每个猜测的平均剩余单词,并使用优先级队列选择平均值最低的单词。

我认为前两个循环是不可避免的,但也许有办法摆脱第三个循环?有人有什么想法或建议吗?

我做了类似的事情,创建了一个包含11000个条目的列表。花了27分钟。

我使用一个单词中预先生成的(一次性(字母列表来完成这项工作,作为位字段(即一个32位整数(,然后使用AND指令。如果某个单词失败了,它将退出循环的其余部分。

最新更新