wtorek, 27 grudnia 2016

Życie "jedynek" - czyli najprostszy, probabilistyczny, jednowymiarowy automat komórkowy

Automaty komórkowe to niewyczerpane źródło inspiracji dla programistów, fizyków, matematyków, a także komputerowych artystów (więcej teorii u "cioci Wikipedii" i u "wujka Google" )
Zanim jednak będziemy potrafili zaprogramować te najbardziej znane, musimy poćwiczyć na najprostszych. Choć efekty nie będą tak spektakularne.

Poniższy przykład w sposób czysto losowy zmienia wartość w komórce jednowymiarowej tablicy na 1, i ze znacznie większym prawdopodobieństwem na 0. Czas, czyli kolejne kroki automatu są prezentowane w kolejnych liniach pikseli okna, od góry do dołu, zatem pionowe białe linie reprezentują "życie" pojedynczej jedynki.


Sam kod automatu jest bardzo prosty, ale służy nam przy okazji do prezentacji użycia tablicy w Processingu, której tworzenie jest zawsze "dynamiczne" (operator new), odmiennie od tego co można spotkać w takich językach jak C, Pascal czy Fortran. Premią za to jest możliwość sprawdzenia w każdej chwili rozmiaru tablicy za pomocą jej właściwości lengh.


Manipulując prawdopodobieństwami urodzenia i śmierci (żółte ramki) możemy uzyskać różną gęstość zasiedlenia tablicy świata, a więc różną gęstość i typową długość linii życia.

Brak komentarzy:

Prześlij komentarz