在《用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代的动态图。
注意事项
做成动态图,看起来更直观。