Skip to content

Latest commit

 

History

History
56 lines (45 loc) · 1.41 KB

File metadata and controls

56 lines (45 loc) · 1.41 KB

超简单的世界模拟器

这道题手工构造写代码暴力搜索都可以解决。

使用搜索引擎搜索“生命游戏”或“Game of Life”都可以找到很多相关的资料,其中会提到生命游戏的演化规则和一些有趣的构造。

手工构造解法

为了消除右上角的方块,我们只要放置一个水平移动的“太空船”即可:

000000000000000
001111000000000
010001000000000
000001000000000
010010000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000

这样可以得到第一个 flag。

消除第二个方块有点困难,因为(比较小的)飞行器只能沿着对角线方向和水平竖直方向飞行,我们的可控制区域比较小,无法让飞行器移动后与方块碰撞。

所以我们可以找一些会扩散比较大的初始状态,例如这个链接里面讲的例子。

一个可行的例子:

000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000011000000
000000001100000
000000011000000
000000010000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000

暴力解法

直接随机生成 0/1 矩阵,大概几十次就可以找到一个,Python 代码见solve.py