In[]:=
Clear[ICAEvolveList]
In[]:=
ICAEvolveList[{rulearray_,r_},init_]:=FoldList[Boole[MapThread[BooleanFunction[#1,2r+1]@@#2&,{#2,Partition[#,2r+1,1,2r]}]]&,init,rulearray]
In[]:=
ArrayPlot[ICAEvolveList[{Table[30,5,11],1},CenterArray[{1},11]]]
Out[]=
In[]:=
ArrayPlot[ICAEvolveList[{Table[30,50,101],1},CenterArray[{1},101]]]
Out[]=
In[]:=
RepeatedTiming[ArrayPlot[ICAEvolveList[{Table[30,50,101],1},CenterArray[{1},101]]]]
Out[]=
0.0165656,
In[]:=
ArrayPlot[ICAEvolveList[{Table[7,5,11],1/2},CenterArray[{1},11]]]
Out[]=
In[]:=
ArrayPlot[ICAEvolveList[{RandomChoice[{7,1},{5,11}],1/2},CenterArray[{1},11]]]
Out[]=
In[]:=
ArrayPlot[ICAEvolveList[{RandomChoice[{7,1},{50,101}],1/2},CenterArray[{1},101]]]
Out[]=
In[]:=
ArrayPlot[ICAEvolveList[{RandomChoice[{6,8},{50,101}],1/2},CenterArray[{1},101]]]
Out[]=
In[]:=
Table[ArrayPlot[ICAEvolveList[{RandomChoice[{6,8},{10,11}],1/2},CenterArray[{1},11]]],20]
Out[]=
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
In[]:=
ICAPict[{rules_,r_},w_,t_]:=With[{ra=RandomChoice[{0,1},{t,w}]},ArrayPlot[Prepend[#,Table[0,Length[First[#]]]]&[ra]+2(ICAEvolveList[{rules[[#+1]]&/@ra,r},CenterArray[{1},w]])]]
In[]:=
ICAPict[{{6,8},1/2},11,10]
Out[]=