Wejdź na stronę  [ modelu Sandpile ]  i pobaw się tamtejszym automatem: wybierz różne opcje z listy „Presets” na samej górze, wklikaj własnoręcznie przeszkody dla piasku (naciśnij „Start” gdy skończysz wklikiwać). Automat ten działa zgodnie z następującymi regułami:

model Sandpile

Plansza dzielona jest według  tzw. sąsiedztwa Margolusa – brane są pod uwagę kwadraty złożone z czterech pól. Lewy górny róg kwadratu ma na zmianę współrzędne (2k,2k) – w parzystych iteracjach oraz (2k+1,2k+1) – w nieparzystych iteracjach (lub na odwrót).

Ziarenka piasku przemieszczają się w dół według pięciu reguł:

  • 1. i 2. - jeżeli ziarenko ma pod sobą pustą przestrzeń, to ją zajmuje (nie dotyczy to sytuacji o numerze 5!!)

  • 3. i 4. - jeżeli ziarenko leży na innym ziarenku, lecz na ukos w dół znajduje się pusta przestrzeń, to górne ziarenko ją zajmuje,

  • 5. - jeżeli dwa ziarenka znajdują się obok siebie, zaś pod nimi jest pusta przestrzeń, to:
    - z prawdopodobieństwem 0.5 się zaklinują i w danej iteracji są nieruchome,
    - z prawdopodobieństwem 0.5 przesuwają się jednocześnie w dó
    ł.

Oczywiście, ziarenka mogą występować w konfiguracjach innych niż podane poniżej na rysunku, jednak pozostałe konfiguracje są nieruchome.

Zadanie (4)

Uruchom skrypt sandpile.m i prześledź jego treść oraz działanie automatu. Wykorzystaj funkcję fWczytajZycie (z zadania (1)) do wczytania klifu lub wulkanu, przedtem musisz oczywiście takie struktury zapisać do pliku za pomocą zer i jedynek.

klif     wulkan

Zakomentuj fragment losujący ziarenka piasku na samej górze planszy i ustaw klif/wulkan gdzieś w dolnej części planszy tak aby stykał się z jej dolnym brzegiem uruchom skrypt i podziwiaj osuwisko.

 

   

Ostatnia modyfikacja: poniedziałek, 2.09.2013, 20:25 PM