Системы перезаписи по правилам
SubstitutionSystem генерирует список, представляющий развитие заданного начального состояния, следуя итеративным приложениям набора правил.
Рассмотрите данное начальное состояние и набор правил.
In[1]:=
init = "\[Wolf]";
rules = {"\[HappySmiley]" -> "\[Wolf]\[HappySmiley]",
"\[Wolf]" -> "\[HappySmiley]"};
Используйте SubstitutionSystem для получения развития 8 итераций.
In[2]:=
SubstitutionSystem[{"\[HappySmiley]" -> "\[Wolf]\[HappySmiley]",
"\[Wolf]" -> "\[HappySmiley]"}, "\[Wolf]", 8] // Column
Out[2]=
Используйте двухмерный набор правил для создания ковра Серпинского.
In[3]:=
rules2D = {1 -> {{1, 1, 1}, {1, 0, 1}, {1, 1, 1}},
0 -> ConstantArray[0, {3, 3}]};
Визуализируйте систему перезаписи по правилам, используя RulePlot.
In[4]:=
RulePlot@SubstitutionSystem[rules2D]
Out[4]=
Сгенерируйте ковёр Серпинского.
In[5]:=
ArrayPlot /@ SubstitutionSystem[rules2D, {{1}}, 5]
Out[5]=