To pytanie dotyczy abelowych piaskowców . Przeczytaj poprzednie wyzwanie i obejrzyj wideo z numerami, aby dowiedzieć się więcej.
Abelowa kupa piasku o rozmiarze n na n jest siatką zawierającą liczbę 0, 1, 2 i 3 (reprezentującą liczbę ziaren piasku). Dodanie dwóch stosów piasków polega na dodaniu elementu po elemencie, a następnie obaleniu dowolnego elementu, który przekracza 3. Kolejność, w jakiej się przewrócisz, nie ma znaczenia, wynik końcowy jest taki sam. Kiedy komórka przewraca się, jej liczba zmniejsza się o 4, a każdy z jej bezpośrednich sąsiadów wzrasta o 1. Może to spowodować reakcję łańcuchową. Jeśli komórka znajduje się na krawędzi siatki, wszelkie ziarna spadające z siatki podczas obalania znikają.
Na przykład dodaję dwa stosy piasku 3 na 3 (co daje dość ekstremalną reakcję łańcuchową):
3 3 3 1 2 1 4 5 4 4 6 4 6 2 6 6 3 6 2 5 2 4 1 4 4 2 4 0 4 0 2 0 2 2 1 2
3 3 3 + 2 1 2 = 5 4 5 -> 6 0 6 -> 2 4 2 -> 3 0 3 -> 5 0 5 -> 1 4 1 -> 2 0 2 -> 4 0 4 -> 0 4 0 -> 1 0 1
3 3 3 1 2 1 4 5 4 4 6 4 6 2 6 6 3 6 2 5 2 4 1 4 4 2 4 0 4 0 2 0 2 2 1 2
W tym wyzwaniu interesuje nas podzbiór wszystkich możliwych stosów piasków n na n . Ten podzbiór zawiera dowolny stos piasków, który można uzyskać, dodając dowolny stos sandpile do all-3s n przez n sandpile. Na przykład tuż powyżej widzieliśmy, że 212 | 101 | 212
jest w podzbiorze, ponieważ otrzymaliśmy to, dodając coś do stosu wszystkich 3.
Teraz ten podzbiór ma interesujący element: element tożsamości . Jeśli weźmiesz ten element i dodasz go do dowolnego innego elementu w podzbiorze , suma nie ulegnie zmianie. Innymi słowy, ten stos piasku działa jak zero tego podzbioru. Tak się składa, że 212 | 101 | 212
jest to element zerowy dla podzbioru 3 na 3. Na przykład:
2 2 2 2 1 2 4 3 4 0 5 0 2 1 2 2 2 2
2 2 2 + 1 0 1 = 3 2 3 -> 5 2 5 -> 1 6 1 -> 2 2 2
2 2 2 2 1 2 4 3 4 0 5 0 2 1 2 2 2 2
Teraz jest to twoje wyzwanie: biorąc n , znajdź element tożsamości podzbioru siatki n na n . Wydrukuj go, przypisując każdemu z nich unikalny kolor z wystarczającym kontrastem 0, 1, 2, 3
i wysyłając obraz n na n. Twój kod musi być w stanie wyprodukować skrzynkę 50 na 50 w niecałą minutę na rozsądnym nowoczesnym komputerze.
Na przykład element tożsamości 500 na 500:
Oto niebieski = 3, zielony = 2, czerwony = 1, biały = 0. Ale nie musisz używać tego schematu kolorów w swojej odpowiedzi.