gpt4 book ai didi

algorithm - 一种创建拼图的快速算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:28:36 25 4
gpt4 key购买 nike

我在 http://www.puzzles.ca/wordsearch/transportation.html 中发现了一个谜题一个人必须在网格中找到单词,并且他(她)可以从 8 个方向阅读单词。我想到了以下问题:

我们得到了一组单词。找到一种算法,将这些词放在 n x m 网格中,其中给出了 nm。有没有人对创建合适网格的算法有建议,因为如果网格的大小刚好足以使字母适合网格并且单词彼此重叠,这个问题似乎很困难?

最佳答案

这个SO问题中也描述了一种算法

https://stackoverflow.com/a/23435654/3591273

希望对你有帮助

更新:算法摘要(如上一个链接中给出)

  1. 从网格中随机选择第一个待填充的空词槽,并用合适的词填充它

  2. 找到与已填充字槽有交集的所有空字槽

  3. 按约束比率(例如每个可用解决方案的数量)对它们进行排序

  4. 循环遍历上一步的空槽并尝试一些候选词(从可用词中)

  5. 选择保持网格一致性的词槽和要填充的词(即在这个词槽被这个词填充后网格有一个解决方案)并且下一步的解决方案数量是最大的(这最大限度地减少了bactracks后续步骤)并转到步骤 2

  6. 如果在上一步中没有找到单词,请尝试回溯到前一个单词并使用替代候选词(除非可用候选词已用尽)

  7. 可选地重置回溯后可能需要重置的任何词槽(即再次将它们标记为空)并转到第 2 步

  8. 如果没有找到回溯,则此配置无解

  9. 如果所有空位都已填满,您有一个解决方案

关于algorithm - 一种创建拼图的快速算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6332652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com