Dzień dobry!

Mam na imię Kamila. Witam Cię serdecznie na stronie kamilachyla.com.

Znajdziesz tu garść moich notatek.

Piszę głównie o programowaniu (EN/PL): (Java, Python, Go, JavaScript), w wolnych chwilach bawię się sztuką generatywną (p5js) oraz piszę i ilustruję książeczki dla swoich dzieci.

Zapraszam!

Koniec Advent Of Code 2020!

Zakończył się tegoroczny Advent of Code. Wszystkie zadania zrobione. Jak co roku, zabawa była świetna. A rzecz cała udała się w tym roku z jednego, bardzo ważnego powodu: z powodu Covida, a dokładniej, z powodu braku konieczności wyprawiania dzieci do szkoły. Dzięki temu miałam po prostu poranną "godzinkę" dla siebie. Miałam też dość determinacji, aby robić zadania również na świątecznym wyjeździe, choć pojawiło się kilka problemów logostycznych. Wszystkie udało się pokonać i teraz z satysfakcją patrzę na moje gwiazdki.

Dzień 20 - poszukiwanie potworów

To był jeden z najtrudnieszych dni. Składanie zdjęć satelitarnych z fragmentów to świetna zabawa, pod warunkiem, że się ten proces już wcześniej przećwiczyło. W zadaniu Jurassic Jigsaw można się było wykazać spostrzegawczością. Najpierw popełniłam błąd w definicjach funcji przekształcających współrzędne punktów obrazu w transformacjach (obrotach i odbiciach względem osi). Poniżej funkcja transformująca frament (tile) w obrocie (wartość 0-3 oznaczająca odpowiednio obrót o 0, 90, 180, 270 stopni) i odbiciu (wartość 0-2 oznaczająca odpowiednio: brak odbicia, odbicie horyzonralne

Dzień 13 - chińskie twierdzenie o resztach

Zadanie Shuttle Search rozłożyło mnie na łopatki. Popełniłam dwa błędy: Najpierw długi czas rozwiązywałam całkiem inne zadanie (pozycję autobusu na liście wejściowej traktowałam jako różnicę czasu do poprzedniego zamiast to pierwszego autobusu). Wniosek na przyszłość: czytaj dokładnie treść zadania. Póżniej zauważyłam, że moje naiwne przesuwanie iteratorów działa tylko dla danych testowych - dla danych właściwych zwisa na długie minuty (dłużej nie czekałam...). Widocznie istnieje jakiś lepszy algorytm niż brute force.

Dzień 10 - sortowanie topologiczne

Co za zbieg okoliczności. Wczoraj przygotowałam wpis na temat sortowania topologicznego (zauważyłam nowy moduł w Pythonie 3.9), a dzisiejsze zadanie właśnie takego przesortowania wierzchołków wymagało. Przyznam się, że zrozumiałam to dopiero wtedy, gdy moje naiwne rozwiązanie, które sprawdziło się dla danych testowych, zupełnie zwisnęło na właściwych danych. Czekam, czekam, a tu nic. W moim grafie, reprezentowanym jako dict, z wierzchołkiem (nominalną wartością zasilania przejściówki) związana była lista tych wierzchołków/przejściówek, do których można dany wierzchołek wpiąć.