niedziela, 29 stycznia 2017

Wariacje na temat "reguły modulo" w automacie jednowymiarowym

Kolejna wersja rozwojowa automatu 1D pozwala nam w prosty sposób decydować o parametrach używanej reguły. Zmienna self (linia 28) jest typu boolean (czyli zmienna logiczna) i decyduje czy aktualny stan komórki wpływa na jej stan następny. Zmienna divider (linia 27) określa przez jaką liczbę dzielimy sumę w regule. Nie jest to jednak ta sama reguła co poprzednio, choć też używa operacji  reszty z dzielenia.
Tym razem zliczamy nie LICZBĘ sąsiadów, ale SUMĘ stanów grupy komórek. Zawsze zawiera ona komórki "skrzydłowe", natomiast aktualny stan komórki środkowej możemy pobrać albo nie - w zależności od wartości zmiennej logicznej self Używamy do tego charakterystycznej dla języków C-podobnych konstrukcji warunkowej ?: ( warunek ? wyrażenie dla prawdy : wyrażenie dla nieprawdy )
Ostatecznie sumę stanów dzielimy przez divider i zapisujemy w odpowiedniej komórce tablicy WorldNew (linia 66).
Dla self==true i divider==5 uzyskujemy następujący wzór:

Brak komentarzy:

Prześlij komentarz