|
|
1
7
假设您生成的二进制文件大小为1KB(相当小)。1KB是8192位。这意味着总共有2个 20 8172 秒生成所有可能的1KB二进制文件,这(根据wolfram alpha)大约是10 2442 乘以宇宙的年龄。这会让您了解,在对所有1KB程序进行彻底搜索时,遇到有用程序的可能性有多大(到底有多少有用的1KB程序?) |
|
|
2
4
我将扩展Firestand关于基因编程的答案。 已经有像你这样的想法了;然而,它们几乎一直局限于某些人工环境。 CoreWars 环境这些程序并不长(几十到几百条汇编指令),而且法律指令集也不是很大,因此可能的程序空间比x86的成熟GUI应用程序小得多。一开始,机器人们几乎不互相打架;但是每一代人都有越来越好的战士。 你可以在一本书中读到更多关于这个概念的内容 research paper (PDF) 将这一思想应用于x86并不容易,这里的指令集很大,它们之间的交互有时非常复杂。然而,从理论上讲,您可以使用简化的指令集构建虚拟机,并为其开发程序。我在什么地方读到过,但我记不起在哪里了。
您可以尝试使用“智能”系统为您的程序找到正确性证明。。。但由于您不局限于某些程序子集(您可以生成任何可以在处理器上运行的程序),因此您无法对所有程序进行推理,因为 Halting problem . 简单地说,如果不检查所有可能的输入,就无法检测某些程序是否正常工作。 |
|
|
4
2
当然,您可以生成数百万个随机可执行文件,但这是容易的一点,困难的一点是确定哪些文件做了有用的事情,这需要测试,而不是自动化。 |
|
5
1
简短答复: 不 . 虽然这在理论上是可能的,但它比你在世界上的每一次彩票中奖的可能性要小得多,每天,直到你的余生。
Infinite monkey theorem ,特别是截面概率。 |
|
6
1
除非你只有一只猴子,莎士比亚本人。 |
|
|
Mayka · 通过带条件的生成器表达式指定两个变量? 8 年前 |
|
Bram Vanroy · 在列表之间获取唯一的产品并维护输入顺序 8 年前 |
|
|
David Trinh · js生成器存在异步问题,并承诺不会返回结果 8 年前 |