Hallo Michael,
in der Hilfe steht geschrieben:
CellularAutomaton[{n,k},\[Ellipsis]] is equivalent to
CellularAutomaton[{n,{k,{k^2,k,1}}},\[Ellipsis]].
mit Begründung aus ref/tutorial:
--
For a general cellular automaton rule, each digit of the rule number
specifies what color a different possible neighborhood of 2r+1 cells
should yield. To find out which digit corresponds to which neighborhood,
one effectively treats the cells in a neighborhood as digits in a number.
For an r=1 cellular automaton, the number is obtained from the list of
elements neig in the neighborhood by neig.{k^2,k,1}.
--
Mit anderen Worten, eine Nachbarschaft (Vorgängerreihe) {1, 1, 1}
hat bei 2 Farben und Range 1 die Position {1, 1, 1}.{4, 2, 1} = 7 im
Nummerierungsschema, eine Nachbarschaft {1, 0, 1} hat die Position {1, 0,
1}.{4, 2, 1} = 5 im Nummerierungsschema der zellularen Automaten. Und Rule
128 = 2^7 = 1*2^7 + 0*2^6 + 0*2^5 + 0*2^4 + 0*2^3 + 0*2^2 + 0*2^0 ist
diejenige, die bei zwei Farben und Range 1 der Nachbarschaft 7 = {1, 1, 1}
die Farbe 1 und allen anderen Nachbarschaften die Farbe 0 zuweist.
Also, mit Gewichten {1, 1, 1} nummerieren Sie bei zwei Farben und Range 1
{1, 1, 1}.{1, 1, 1} = 3
{1, 1, 0}.{1, 1, 1} = 2
{1, 0, 1}.{1, 1, 1} = 2
{1, 0, 0}.{1, 1, 1} = 1
{0, 1, 1}.{1, 1, 1} = 2
{0, 1, 0}.{1, 1, 1} = 1
{0, 0, 1}.{1, 1, 1} = 1
{0, 0, 0}.{1, 1, 1} = 0
nur 4 Nachbarschaften und deshalb sind mit diesen Gewichten die Regeln 0
bis einschliesslich 15 = 2^4 - 1 adressierbar. Oder mit wiederum anderen
Worten
In[103]:= Clear[gamerCAWCount]
gamerCAWCount[k_Integer?NonNegative (* Anzahl Farben *),
r_Integer?NonNegative (* Range *),
w_List (* weights *) ] :=
k^Length[Union[Tuples[Range[k] - 1, 2 r + 1] . w]] - 1 /;
VectorQ[w, NonNegative] && Length[w] == 2 r + 1
In[105]:= gamerCAWCount[2, 1, {4, 2, 1}]
Out[105]= 255
In[108]:= gamerCAWCount[2, 1, {1, 1, 1}]
Out[108]= 15
In[109]:= gamerCAWCount[3, 1, {1, 1, 1}]
Out[109]= 2186
In[111]:= gamerCAWCount[2, 2, {1, 1, 1, 1, 1}]
Out[111]= 63
Gruss
Udo.
-------------
ArrayPlot[CellularAutomaton[{30,
{2,
{4, 2, 1}}}, (* hier die Gewichte der Nachbarzellen *)
{{0, 0, 0, 1, 0, 0}, 0}, 50]]
-------------
Dies ergibt identischem Output wie die oben angegebene Anweisung.
Frage: Wieso stehen hier die Gewichte {4,2,1}. Ich würde erwarten, daß
bei Gewichten {1,1,1} derselbe Output wie oben erzeugt wird. Tut er aber
nicht, stattdessen gibt es eine Fehlermeldung:
-------------
CellularAutomaton::"rsize" : ""The specified rule number "\30" is
greater
than the largest possible rule number ("15")."
-------------