Die Herausforderung
Sie müssen ein vollständiges Programm schreiben, das aus STDIN sieben Zahlen entnimmt und die zweidimensionale Historie des Zellularautomaten (CA) an STDOUT ausgibt. Das ist Code Golf.
Eingabeformatierung der Eingabe handelt es sich um sieben durch Kommas getrennte Ganzzahlen / Zeichenfolgen. Die erste Zahl ist die Nummer der Regel gemäß Wolfram-Code (der Standardname für jede Regel). Die zweite ist die anfängliche Startkonfiguration. Die dritten und vierten beschreiben, welches Muster und wie oft es links von der Startkonfiguration angehängt werden soll. als Polsterung. Der fünfte und sechste machen dasselbe für die rechte Seite. Die letzte Zahl ist die Anzahl der Generationen, um die Simulation auszuführen.
Ein Beispiel für eine Eingabe ist also 90,11,0,4,0,4,5
. Dies sollte Ihrem Programm mitteilen, dass Sie Regel 90 ausführen . Es sollte dem Programm auch mitteilen, dass bei der Erstkonfiguration 11
die Zeichenfolge 0
viermal an beide Enden angehängt werden soll, sodass das eigentliche Startmuster lautet 0000110000
. Außerdem wird Ihr Programm angewiesen, diese Simulation für 5 Generationen auszuführen.
Ausgabe Ihr Programm sollte das gesamte Array von Zellen jeder Generation (durch Zeilenumbrüche getrennt) drucken, damit die Ausgabe das Raum-Zeit-Diagramm der Zertifizierungsstelle ist. Für jede Generation wird der Zustand jeder Zelle durch ihren Zustand und die Zustände der Zellen unmittelbar links und rechts gemäß der als Eingabe bereitgestellten Regel bestimmt. Die Simulation sollte sich um die Kanten wickeln. Das erste, was gedruckt wird, sollte das Startarray als gen sein. 0.
Die Eingabe 90,11,0,4,0,4,5
sollte so genau wie möglich zur folgenden Ausgabe führen.
0000110000
0001111000
0011001100
0111111110
1100000011
0110000110
Beachten Sie, dass der Ausgangszustand in den fünf Generationen nicht enthalten ist. Beachten Sie auch, dass sich die Simulation um die Kanten schlängelt.
Mehr Beispiele
Eingang:
184,1100,01,2,01,1,4
Ausgabe:
0101110001
1011101000
0111010100
0110101010
0101010101
Eingang:
0,1011,1,0,0,1,2
Ausgabe:
10110
00000
00000
Weitere Informationen zur Funktionsweise und Nummerierung von 1D CAs