
生命游戏
|
89
细胞里的水?细胞的结构部分?头发吗?死皮吗?皮肤上的细菌?你肠道里
的细菌?线粒体?当你称体重时,你包含了多少这样的分子?用离散的对象
来设想世界是有用的,但是我们所识别的实体并不是真实的。”
如果你对这些说法中的一些比另一些更满意,问问自己为什么。在这些情景
中,影响你反应的不同之处是什么?你能在它们之间做出原则性的区分吗?
有关工具主义的更多信息,请参阅
https://thinkcomplex.com/instr
。
6.6 生命游戏实现
本章末尾的练习要求你尝试和修改生命游戏,并实现其他二维元胞自动机。
本节将解释我对 GoL 的实现,你可以将其作为积累经验的起点。
为了表示单元格的状态,我使用一个由 8 位无符号整数组成的 NumPy 数组。
例如,下面的代码创建一个 10×10 的数组,并用 0 和 1 的随机值进行初始化:
a = np.random.randint(2, size=(10, 10), dtype=np.uint8)
有几种方法可以计算 GoL 规则。最简单的是使用 for 循环遍历数组的行和列:
b = np.zeros_like(a)
rows, cols = a.shape
for i in range(1, rows-1):
for j in range(1, cols-1):
state = a[i, j]
neighbors = a[i-1:i+2, j-1:j+2]
k = np.sum(neighbors) - state
if state:
if ...