置換系
SubstitutionSystemは,与えらえた初期状態に一連の規則を反復的に適用することで得られた進化を表すリストを生成する.
次の初期状態と規則について考える.
In[1]:=
![Click for copyable input](assets.ja/substitution-systems/In_54.png)
init = "\[Wolf]";
rules = {"\[HappySmiley]" -> "\[Wolf]\[HappySmiley]",
"\[Wolf]" -> "\[HappySmiley]"};
SubstitutionSystemを使って8回の反復進化を得る.
In[2]:=
![Click for copyable input](assets.ja/substitution-systems/In_55.png)
SubstitutionSystem[{"\[HappySmiley]" -> "\[Wolf]\[HappySmiley]",
"\[Wolf]" -> "\[HappySmiley]"}, "\[Wolf]", 8] // Column
Out[2]=
![](assets.ja/substitution-systems/O_60.png)
規則の二次元集合を使ってシェルピンスキー(Sierpiński)のカーペットを構築する.
In[3]:=
![Click for copyable input](assets.ja/substitution-systems/In_56.png)
rules2D = {1 -> {{1, 1, 1}, {1, 0, 1}, {1, 1, 1}},
0 -> ConstantArray[0, {3, 3}]};
RulePlotを使って置換系を可視化する.
In[4]:=
![Click for copyable input](assets.ja/substitution-systems/In_57.png)
RulePlot@SubstitutionSystem[rules2D]
Out[4]=
![](assets.ja/substitution-systems/O_61.png)
シェルピンスキーのカーペットを生成する.
In[5]:=
![Click for copyable input](assets.ja/substitution-systems/In_58.png)
ArrayPlot /@ SubstitutionSystem[rules2D, {{1}}, 5]
Out[5]=
![](assets.ja/substitution-systems/O_62.png)