Wolfram言語

コアとなる言語

セルオートマトンの周期性

新関数のFindTransientRepeatは,リストの過渡部分と反復部分を識別する.これを使ってセルオートマトン(CA)を調べることができる.

CAのルール30を見てみる.バージョン11の関数であるRulePlotは,関連する変換ルールを求めるのに役立つツールである.

In[1]:=
Click for copyable input
RulePlot[CellularAutomaton[30]]
Out[1]=

新関数のCenterArrayを使ってCAの初期状態を定義する.

In[2]:=
Click for copyable input
initc = CenterArray[7]
Out[2]=

上記の初期条件でCAのルール30を計算し,正方形の離散配列としてプロットする.

In[3]:=
Click for copyable input
ca30 = CellularAutomaton[30, initc, 20]; ArrayPlot[ca30, Mesh -> True]
Out[3]=

FindTransientRepeatは,このCAの反復部分を与える.

In[4]:=
Click for copyable input
tr30 = FindTransientRepeat[ca30, 2]; ArrayPlot[Last[tr30], Mesh -> True]
Out[4]=

CAのルール90について同じステップを繰り返す.

In[5]:=
Click for copyable input
RulePlot[CellularAutomaton[90]]
Out[5]=
In[6]:=
Click for copyable input
ca90 = CellularAutomaton[90, initc, 20]; ArrayPlot[ca90, Mesh -> True]
Out[6]=
In[7]:=
Click for copyable input
tr90 = FindTransientRepeat[ca90, 2]; ArrayPlot[Last[tr90], Mesh -> True]
Out[7]=

関連する例

de en es fr ko pt-br ru zh