什么是解决拼图游戏的最佳算法

时间:2017-03-22 05:16:49

标签: algorithm

没有说明它是拼图之王。

我假设正常的图片拼图与标准件。 q语句: 用于解决拼图游戏的代码。什么是数据结构?假设你有一些方法可以告诉你两件是否合在一起。您如何解决这个难题,最大限度地减少您调用该功能的次数?

分裂和征服是最好的方式吗? 根据我,数据结构必须是一个二维数组,还有什么?

1 个答案:

答案 0 :(得分:-1)

Cryptoquotes和cryptograms正式称为替换密码。这是您在搜索有关此主题的更多资料时要使用的关键字。

对于个人和计算机来说,替换密码很容易破解。

通常,自动求解器由两部分组成:

  • 一个可以获取文本并评估其接近程度的函数 预期语言的纯文本
  • 一种查找产生密码的密钥的算法 听起来最好的解密文本(其中“听起来最好”意味着它是 上一项中提到的功能的最佳值)

对于简单的替换密码,第二部分的一个很好的选择是任何一种启发式本地搜索,例如爬山:从随机排列开始,然后应用改进破解文本得分的小改动。替换密码具有解决方案空间“平滑”的良好属性:对键的小的改变(例如交换两个字母的图像)对解密的文本产生小的改变。已经有一些最简单的爬坡迭代通常足以找到全局最优值。

对于评估解决方案的功能,对于加密引用和类似的谜题,一个相当简单的功能是检查解密的单词是否可以在预期语言的单词列表中找到,并且可能使用它们的频率更精确评价。这可以做到,因为这个密码的拼图版本通常会保留空格和标点符号。

另一种方法(我的首选方法,以及更通用且更健壮的方法)是使用统计数据。而不是wordlist,预先计算您的语言四谱的频率。 (在这种情况下,tetragram =四个连续的字母。)这些可以用作生成与实际语言非常相似的字符串的隐马尔可夫模型的概率,并且我们可以将我们的评估函数定义为所述概率的(对数)生成器将生成我们正在评估的特定字符串。这个概率越高,字符串“听起来就像我们语言中的东西”。

  • 列表项