人工生命:一个简易(300 行代码)再现计算生命

发布: (2026年3月9日 GMT+8 04:42)
2 分钟阅读

Source: Hacker News

程序描述

一个 240 × 135 的网格,由长度为 64 指令的类 Brainfuck 程序随机初始化。每一次迭代,邻近的程序会随机配对,将它们的指令带(tape)连接在一起,并以最多 (2^{13}) 步运行。执行完成后,指令带会再次拆分。指令可以循环并突变指令带(程序)本身。正如论文中发现的那样,自复制程序会自行出现,它们会将自身复制到邻居的指令带上,最终蔓延并占领整个网格。

示例模拟

每个像素对应一条指令;每条指令都有唯一的颜色,黑色则表示指令带上的原始数据存储 / 不是指令。每个 8 × 8 的像素块代表一个程序。

uv run main.py --seed 1

在本次运行中,自复制程序相对较早出现,并很快占领大部分网格,随后出现更高效的自复制程序,最终支配全部。

示例

0 浏览
Back to Blog

相关文章

阅读更多 »

首例飞机致命事故

托马斯·塞尔弗里奇——动力航空史上的首位死亡者 1908年9月17日傍晚,一名年轻的美国军官托马斯·塞尔弗里奇爬进了一架…