Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 自动图像算法_Algorithm_Performance - Fatal编程技术网

Algorithm 自动图像算法

Algorithm 自动图像算法,algorithm,performance,Algorithm,Performance,自动签名是描述其字母的句子。例如,从维基百科: 这句话用了两个a,两个c,两个d,二十八个e, 五个f,三个g,八个h,十一个i,三个l,两个m, 十三个n,九个o,两个p,五个r,二十五个s, 二十三个t、六个v、十个w、两个x、五个y和一个z 这些句子极难用手创造,因此计算机当然最适合这项任务,但如何才能有效地做到这一点呢使用给定初始字符串查找自动图像的有效算法是什么?链接的自动图片怎么样?上一句描述了下一句的内容?虽然线程是关于同一主题的,但它只是要求存在,并且在实践中描述的所有算法都太慢

自动签名是描述其字母的句子。例如,从维基百科:

这句话用了两个a,两个c,两个d,二十八个e, 五个f,三个g,八个h,十一个i,三个l,两个m, 十三个n,九个o,两个p,五个r,二十五个s, 二十三个t、六个v、十个w、两个x、五个y和一个z

这些句子极难用手创造,因此计算机当然最适合这项任务,但如何才能有效地做到这一点呢使用给定初始字符串查找自动图像的有效算法是什么?链接的自动图片怎么样?上一句描述了下一句的内容?虽然线程是关于同一主题的,但它只是要求存在,并且在实践中描述的所有算法都太慢了

一种简单的方法是搜索从0到40的可能的数字组合集,寻找可能的解决方案。然而,有40^26的可能性,这将花费不可能的时间

我们可以改进我们的搜索,但可能会以遗漏一个解决方案为代价,首先对字母组合进行一些初始猜测,然后只搜索与我们的猜测相差3的任意一侧的自动签名。这仍然需要6^26次。即使每秒检查一百万次,这也需要500多万年才能完成

进一步的改进来自于认识到A、b、c、d、j、k、m、p、q和z从未出现在任何数字字中,因此这十个字母的计数由初始字符串固定。我们现在只有3万亿个组合——仍然不是很好

最好从最初的猜测开始,然后

  • 创建一个新的“自动签名”,描述上一个自动签名的字母计数
  • 检查我们是否已经重复了自动拍照。如果我们有,循环长度为1,我们就完成了。否则,稍微修改猜测并转至步骤1

  • ……但这也有一定的局限性。尽管这项任务似乎毫无结果,但其他人还是取得了成功。事实上,甚至有一个25个链接的自动照片链。如何做到这一点?

    一种有效的方法是用描述前一个短语的短语替换该短语,直到它们相同,即该短语是自动标记。
    但是它在很多情况下可能不起作用。

    我将把它作为一个整数约束规划问题来处理。定义你的句子结构如下:

    这个句子有[countA]'a'[s],[countB]'b'[s]。。。和[countZ]'z'[s]

    我已经包括了所有26个字母,但如果如你在维基百科中的例子中,
    countB
    为零,那么我们可以完全从句子中省略该字母(及其计数);或者,你也可以让它说“零b”,例如

    现在,我们可以计算实际使用的字母数,并编写一些约束条件:

    • 字母“a”在结构中出现两次(“has”、“and”),如果
      countA>0(必须出现),则出现一次,并且不出现在任何数字单词中
    • 字母“b”不会出现在任何数字单词中,因此如果
      countB>0
      ,它只出现一次
    • 字母“e”在结构(“句子”)中出现三次,如果
      countE>0(必须出现),则出现一次,并且:
      
      • 对于等于1(“一”)、5(“五”)、8(“八”)、9(“九”)、10(“十”)和
      • 对于等于3(“三”)、7(“七”)、12(“十二”)和
      • 每个
        计数
        变量等于11(“十一”)

    这些约束有点复杂,但它们可以使用约束编程框架来表示,如。有些约束可以直接手动简化(例如,
    countA
    必须等于3,
    countB
    必须等于0或1),但实际上并不需要这样做,因为一个好的约束求解器无论如何都会自动完成。

    酷!但问题是什么?@RNar计算机如何有效地生成自动图像?我想出的每件事都花了很长时间,真是荒谬。对不起。虽然很有趣,但这是一个非常复杂的问题,而且对于堆栈溢出来说过于宽泛和抽象。它几乎肯定会关闭。我建议你,然后阅读和。@TomZych我在发布这篇文章之前看到了这篇文章,但我认为这篇文章不会是重复的,因为这篇文章要求存在,而不是执行。@TomZych我同意你的看法,一般认为这篇文章太宽泛了,但是我,作为一个人,欢迎就此问题提问,希望不要就此结束。MTyler,当我们提出建议的时候,我建议你把它写下来作为一个挑战,然后把它贴在上面。看看大家的想法会很有趣。这是我在问题底部描述的算法,但它有一些问题。例如,循环长度很少为1,并且很难确定下一次自动拍照尝试是否在先前猜测生成的链中的某个位置。为此,您可以使用龟兔算法:对,但是如果循环长度不是1怎么办?然后,我们需要从一个新的猜测和一个新的循环开始,但是没有简单的方法知道这些是否会导致相同的循环。循环长度可能是18或42,只需重新生成随机值并重复迭代即可。这不是一个确定性的方法,但它是有效的。