多语言展示
当前在线:1259今日阅读:167今日分享:27

一个二维元胞自动机的构造和动态演示

在《用Mathematica玩转一维元胞自动机》里面,我简单介绍了一维元胞自动机的玩法。本文的目标,是演示一下有界的二维元胞自动机的玩法。1用Mathematica玩转一维元胞自动机
工具/原料
1

电脑

2

Mathematica 11.1+

方法/步骤
1

元胞自动机的初始状态:c=Table[If[And[m==20,n==20],1,0],{m,73},{n,73}];里面的元素只有一个1,也就是元胞,其余全部是0。

2

画出初始状态c。c//ArrayPlot[#, ImageSize ->500,ColorRules->{1->Blue,0->Pink},Frame->False]&图中的蓝色像素,就代表元胞。

3

采用规则797:code797 = {797, {2, 1}, {1, 1}};元胞自动机c的第一次迭代,结果如下:b=First[CellularAutomaton[code797, c, {{1}}]]

4

对应的像素图是:b//ArrayPlot[#, ImageSize ->500,ColorRules->{1->Pink,0->Blue},Frame->False]&注意,此时1用粉色代替了。

5

第二次迭代的像素图。

6

第36代的像素图。

7

第100代的像素图。

8

第1代到第200代的动态图。

注意事项

做成动态图,看起来更直观。

推荐信息