折腾来折腾去

pikipity的blog

Matlab 编写“生命游戏”

生命游戏就是指英国数学家约翰·何顿·康威在1970年发明的细胞自动机。一个平面二维世界被划分为了多个小格子,每个小格子都住着一个细胞,其存在两种状态:生或死(不是薛定谔他家养的猫的细胞,放心,没有中间状态,否则用什么算法?神经网络?)。我们可以为这个世界规定某种规则,然后观看这个世界是如何继续发展的(就是体验上帝啦)。最初,约翰·何顿·康威设定了三个法则:

  • 当一个细胞周围的八个位置中有3个细胞时,该位置产生细胞;
  • 当周围有2个细胞时,该位置维持原样;
  • 其他情况,该位置变为无细胞。

然后,世界开始根据这三个法则依据最初细胞摆放数量和位置的不同演变出了各种各样有趣的图案,比如下面这个,这三条看似简单的规律其实蕴含着许许多多的推论,有兴趣的可以看看日文的wiki介绍,详细程度超乎想象。

机枪制造“滑翔机”

在实验室看论文实在无聊,于是用 Matlab 编写了个生命游戏的小程序,切身地体会到了 Matlab 是一个多么效率低下的语言啊。

PS:程序中存在大量 for 循环,严重影响程序运行质量,我觉得还可以抢救一下,元芳你怎么看?

忘了,程序在我的 Github 里面,传送门在这里



Comments