Meydan okuma
STDIN'den yedi sayı alan ve hücresel otomasyonun (CA) iki boyutlu geçmişini STDOUT'a yazdıran eksiksiz bir program yazmalısınız. Bu kod golf.
Girdi Biçimlendirme Girdi, virgülle ayrılmış yedi tamsayı / dize olacaktır. İlk sayı, Wolfram koduna göre kuralın numarasıdır (her kural için standart ad). İkincisi ilk başlangıç yapılandırmasıdır. Üçüncü ve dördüncüsü, başlangıç yapılandırmasının soluna hangi kalıbı ve kaç kez ekleneceğini açıklar. dolgu olarak. Beşinci ve altıncı sağ taraf için de aynısını yapar. Son sayı, simülasyonu çalıştıracak nesillerdir.
Yani, girdi örneği 90,11,0,4,0,4,5
. Bu, programınıza kural 90'ı çalıştırdığınızı söylemelidir . Ayrıca programa, başlangıç yapılandırmasının her iki uca 4 kez eklenmiş 11
dize olmasını istediğinizi belirtmelidir 0
, böylece gerçek başlangıç deseni olur 0000110000
. Ayrıca programınıza bu simülasyonu 5 nesil boyunca çalıştırmasını söyler.
Çıktı Programınız, her nesil (yeni satırlarla ayrılmış olarak) tüm hücre dizisini yazdırmalıdır, böylece çıktı CA'nın uzay-zaman diyagramı olur. Her bir nesil için, her hücrenin durumu, girdi olarak sağlanan kurala göre durumu ve hemen sol ve sağdaki hücrelerin durumları tarafından belirlenir. Simülasyon kenarları sarmalıdır. Yazdırılan ilk şey gen olarak başlangıç dizisi olmalıdır. 0.
Giriş 90,11,0,4,0,4,5
, aşağıdaki çıktıya mümkün olduğunca tam olarak çıkmalıdır.
0000110000
0001111000
0011001100
0111111110
1100000011
0110000110
Başlangıç durumunun beş kuşakta yer almadığına dikkat edin. Ayrıca simülasyonun kenarlara sarıldığına dikkat edin.
Daha fazla örnek
giriş:
184,1100,01,2,01,1,4
çıktı:
0101110001
1011101000
0111010100
0110101010
0101010101
giriş:
0,1011,1,0,0,1,2
çıktı:
10110
00000
00000
1D CA'ların nasıl çalıştığı ve nasıl numaralandırıldıkları hakkında daha fazla bilgi