人工生命:一个简易(300 行代码)再现计算生命
发布: (2026年3月9日 GMT+8 04:42)
2 分钟阅读
原文: Hacker News
Source: Hacker News
程序描述
一个 240 × 135 的网格,由长度为 64 指令的类 Brainfuck 程序随机初始化。每一次迭代,邻近的程序会随机配对,将它们的指令带(tape)连接在一起,并以最多 (2^{13}) 步运行。执行完成后,指令带会再次拆分。指令可以循环并突变指令带(程序)本身。正如论文中发现的那样,自复制程序会自行出现,它们会将自身复制到邻居的指令带上,最终蔓延并占领整个网格。
示例模拟
每个像素对应一条指令;每条指令都有唯一的颜色,黑色则表示指令带上的原始数据存储 / 不是指令。每个 8 × 8 的像素块代表一个程序。
uv run main.py --seed 1
在本次运行中,自复制程序相对较早出现,并很快占领大部分网格,随后出现更高效的自复制程序,最终支配全部。
