#adventofcode za półmetkiem

Fajna zabawa, żeby sobie poćwiczyć programowanie. Wiem że w pracy tylko sklejacie JSONy za 25k

Może ktoś się jeszcze chce przyłączyć? Ekipa mocna, ponad połowa ma wszystkie gwiazdki do tej pory! A codziennie na grupie publikowane są rozwiązania w min. Cobol, Emoji Code, Haskelu, Go, a czasem i kartce papieru

Na
Articles - #adventofcode za półmetkiem 

Fajna zabawa, żeby sobie poćwiczyć program...

źródło: comment_1639380496YBLHyA24T8LTEEpAQdUZQ3.jpg

Pobierz
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Z racji, że od tygodnia uczę się #programowanie #java (zacząłem z Advent of Code, to wrzuciłem więcej dni do dzisiejszego zadania do swojego inputu żeby zobaczyć jak rośnie długość sumy.
Dla 1024 dni i mojego wejścia liczy mi rybki w 36ms nie wiem czy to dobrze czy źle, nie znam się bo nowy jestem, chyba trochę wolno nie?

Poniżej wyniki:
Dla dni: 2
Rybek: 470
Wyrewolwerowanyrewolwer - Z racji, że od tygodnia uczę się #programowanie #java (zacz...

źródło: comment_1638780058pYKOxLEiNHxhuUvXWGsWgD.jpg

Pobierz
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dla 1024 dni i mojego wejścia liczy mi rybki w 36ms nie wiem czy to dobrze czy źle,


@Wyrewolwerowanyrewolwer: python tutaj, dla 1024 mam ~ 2 ms

Ale jak od tygodnia się uczysz i nie miałeś nic wcześniej do czynienia to bardzo spoko, bo to oznacza, że przynajmniej użyłeś poprawnej struktury danych :)
  • Odpowiedz
@kapelusz: czasem tak, ale nie dla takich prostych zadań jak dziś czy wczoraj. Ale jakieś labirynty czy coś co ma potencjał to czasem klepnę wizualizację.
  • Odpowiedz
Dzisiaj zmarnowałem 2h na dzisiejsze zadanie xD. Dzisiejszy poziom czytania ze zrozumieniem 0/10. Jak wam poszło? Ja napisałem 170linijek gównianego kodu ( ͡º ͜ʖ͡º)
#adventofcode
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@m4kb0l: Moim zdaniem dość ciężko byłoby użyć innej metody (która dla każdego setu danych zwróciłaby prawidłowy wynik) niż bruteforce. Ale.. Można to "jako tako optymalizować", np. nie ma sensu wykonywać ciągle tych samych "początkowych" instrukcji, bo przecież z każdym kolejnym przebiegiem poprzednie wyglądają tak samo (wystarczy zapamiętać stan licznika przed "pętlą").

Najgorsze w tego typu zadaniach jest to, że przy tak małych setach "nie widać" efektu optymalizacji (czasu wykonania) bo
  • Odpowiedz
@m4kb0l: no ja taki brzydki rekurencyjny brutforsik zrobiłem. Zrobiłem listę komend [instrukcja, wartość], listę visited do oznaczania gdzie już byłem i leciałem od 1 komendy. Jeśli trafilem na ostatnią komendę to wyświetlałem wynik i kończyłem, przy pętli zwracałem 0. I dla każdej komendy jmp albo nop sprawdzałem najpierw czy jak je zamienie na inne to dotrze do końca czy się zapętli, dzięki rekurencji nie musiałem tego przynajmniej nigdzie zapisywać.
  • Odpowiedz
@bladykiel: w tym roku nie mam czasu uczestniczyć. Ale w zeszłym pisałem w Javie i napisałem sobie generyczny "wizualizator" którego używałem we wszystkich zadaniach gdzie można było pokusić się o wizualizuje. Więc w zasadzie, jak dobrze napiszę się raz, to potem przez całe AoC można na tym jechać
  • Odpowiedz