Advent of Code

Programovacie jazyky, rady, poradňa...
aacid
Hardcore addict
Hardcore addict
Príspevky: 8135
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Advent of Code

Príspevok od používateľa aacid »

sice uz je jedenasty den, ale aj tak by to mohlo niekoho zaujimat:

adventofcode.com

od 1.12. do 25.12. sa kazdy den spristupni novy problem, ktory treba vyriesit. prvych par dni bolo celkom jednoduchych a dali sa vyriesit aj bez kodenia ale postupne to nabera na zlozitosti a s niektorymi problemami som sa dost vyhral.

kazdy problem ma dve casti, druha sa spristupni az po dokonceni prvej, tak po uspesnom vyrieseni sa nezabudnite vratit a spravit druhu cast :)

celkom mi to pripomenulo audiotrackov zdrojak.sk ktory uz bohuzial nefunguje :(
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Advent of Code

Príspevok od používateľa audiotrack »

škoda že som sa o tom dozvedel až teraz. Prezrel som prvé tri, a aj posledné tri ktoré sú zatial prístupné, a je to easy. Som zvedavý čo bude na konci za úlohu. Ale obdivujem tvorcov že sa im to chcelo robiť
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Advent of Code

Príspevok od používateľa BX »

Veľmi pekná vec :-) Dali si na tom poriadne záležať.
aacid
Hardcore addict
Hardcore addict
Príspevky: 8135
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Re: Advent of Code

Príspevok od používateľa aacid »

zatial to nie je moc zlozite, aj ked pri 6-ke som sa zapotil, ale to skor preto lebo som to chcel spravit pomocou eventov :D
ja si to kazdy den riesim a nesnazim sa to spravit co najjednoduchsie ale co najzabavnejsie...

napriklad vcera to look-and-say, bolo sice uplne jednoduche spravit algoritmus, ale najst to finalne cislo trvalo neuveritelne dlho (po 40 iteraciach malo cislo dlzku 330 tisic cifier, druha cast bola po 50 iteraciach a to uz bolo cez 4,5 miliona cifier)...
po vyrieseni prvej casti tam bol odkaz na video kde John Conway rozpraval o tom ako tie cisla analyzoval a zistil ze existuje iba 92 elementov z ktorych sa akekolvek cislo moze skladat.
tak ked som svoj program prerobil v zasade na tabulku hodnot, hned to skratilo cas hladania z nejakych 2 hodin na par sekund :)
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Advent of Code

Príspevok od používateľa BX »

aacid ja som urobil prvé dve a posledné dve (teda 10,11). Všetko v javascripte. look-and-say mi hľadalo pár sekúnd. Tak teda neviem, čo si robil, ale určite si sa zabavil :D
aacid
Hardcore addict
Hardcore addict
Príspevky: 8135
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Re: Advent of Code

Príspevok od používateľa aacid »

asi som to robil sprosto no :)
pre kazdu iteraciu som vytvoril novy string a postupne tam pridaval cisla ako som ich cital z povodneho stringu. pravdepodobne keby som miesto vytvarania stringu mal pole v na nom priamo insertoval a deletoval tak by to islo rychlejsie.
ja inac robim v c#
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Advent of Code

Príspevok od používateľa BX »

Skôr by som riešil, či si to robil nejaký hrôzostrašným algoritmom, alebo jednoduchým lineárnym priechodom (tj. 40x priechod jedným stringom). Technická stránka veci nemôže urobiť rozdiel 2 hodiny.
aacid
Hardcore addict
Hardcore addict
Príspevky: 8135
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Re: Advent of Code

Príspevok od používateľa aacid »

2 hodiny to mozno neboli, ale hodina urcite, pri tych 50tich iteraciach. pri 40 to bolo este celkom svizne.

musi to byt tym, uz som sice staru verziu zmazal, ale robil som to prave tak, pre kazdu iteraciu som vzdy precital pocet po sebeopakujucich sa znakov a do noveho stringu zapisal 2 znaky.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Advent of Code

Príspevok od používateľa BX »

Tak máš pravdu. Skúsil som si tú úlohu napísať v JavaScripte, Jave a C++. Rovnaký algoritmus, všade používam stringy (v C++ používam std::string).
Výsledok:

Kód: Vybrať všetko

Javascript
  40x - 0.3s
  50x - 4.5s

C++
  40x - 0.3s
  50x - 4.2s

Java
  40x - 1 minute 41 seconds
  50x - už asi 30 minút počíta, je to zaseknuté v 45. iterácií a nechce sa mi čakať :-D
No a ja by som teda rád vedel - prečo je javascript taký rýchly? Bez vyskúšania by som sa kľudne hádal, že by mal byť podobne "pomalý", ako java, alebo .NET.
Takže audiotrack? :|
Michaelo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6177
Registrovaný: 16 júl 2008, 20:29
Bydlisko: Pri PC
Kontaktovať používateľa:

Re: Advent of Code

Príspevok od používateľa Michaelo »

Zaujimava vecicka :) Ten druhy den cast 1 ma dostala... Robim to cez PHP a pustal som to na phptester.net a dostal som odpoved, hodil som ju tam a napisalo ze je zla... Tak som rozmyslal co s tym je a chybu som tam nenasiel, tak ked som chcel najst stranku kde mozem ulozit (a rovno aj spustit) PHP, nasiel som ideone.com, pustil som tam ten kod a dostal som inu (spravnu) odpoved...

Wtf?

Tuto je kod: http://ideone.com/HmonXW (dole je vysledok) a skuste ho pustit na http://phptester.net/ a dostanete ine vysledky (plocha krabic je rovnaka, ale plocha aj s dodatkom je zla).
94jakub
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2037
Registrovaný: 15 dec 2006, 13:18
Bydlisko: Martin/BA
Kontaktovať používateľa:

Re: Advent of Code

Príspevok od používateľa 94jakub »

Niekde tam máš whitespaces, phptester ich tam necháva(alebo nebodaj pridáva?) a ideone nie.
Skús pred explode("x") ešte trimovať.
Michaelo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6177
Registrovaný: 16 júl 2008, 20:29
Bydlisko: Pri PC
Kontaktovať používateľa:

Re: Advent of Code

Príspevok od používateľa Michaelo »

Jo, to bolo ono, ale na to som si daval pozor aby tam neboli... Musel ich tam pridat phptester...

Ale aj tak mi pride divne, ze samotna plocha krabic bola fajn, len vypocet malej strany bol niekde zle, pricom sa tam pouzival rovnaky aray... Zeby tam bol ten whitespace a robil problemy so sortom?
94jakub
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2037
Registrovaný: 15 dec 2006, 13:18
Bydlisko: Martin/BA
Kontaktovať používateľa:

Re: Advent of Code

Príspevok od používateľa 94jakub »

Yop. Keď si to zotriedil tak ti vzniklo z "20x30x10" -> "10 x20x30"
Potom to tam robilo problém.
Michaelo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6177
Registrovaný: 16 júl 2008, 20:29
Bydlisko: Pri PC
Kontaktovať používateľa:

Re: Advent of Code

Príspevok od používateľa Michaelo »

To hej, ale aj pred tym sortom tam muselo byt "10 " a nebol problem to nasobit, keby ze bol, nevysla by mi spravna plocha krabic, nie? Nejak tomu nechapem, ale funguje to s trimom alebo na ideone...
94jakub
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2037
Registrovaný: 15 dec 2006, 13:18
Bydlisko: Martin/BA
Kontaktovať používateľa:

Re: Advent of Code

Príspevok od používateľa 94jakub »

Fakt neviem, kde vzniká ten whitespace. Nemám naštudovanú doluemntáciu PHP, ani ako presne fungujú explode, sort. Možno to nemajú na tej strábke dobre spravené.
Pred tým tam bolo len "10"
Veď si skús spraviť testovacie výstupy. Keby si ich spravil hneď, nemusel by si sa pýtať a ja ich robiť za teba. :)
Michaelo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6177
Registrovaný: 16 júl 2008, 20:29
Bydlisko: Pri PC
Kontaktovať používateľa:

Re: Advent of Code

Príspevok od používateľa Michaelo »

Ja som si ich ale par robil a vychadzalo to spravne :) Nemus to vobec testovat, proste to blblo a vieme preco a ako to vzniklo. Nie je to nijako extra dolezity kod aby sa to debugovalo :)
jorg22
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1087
Registrovaný: 12 aug 2006, 20:39
Kontaktovať používateľa:

Re: Advent of Code

Príspevok od používateľa jorg22 »

Ide vam ta stranka? Vcera som si to chcel pozriet tak mi isla ale len na chvilu zrazu mi nesla ani pingnut a ani dneska nefunguje. Vam ide?
Michaelo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6177
Registrovaný: 16 júl 2008, 20:29
Bydlisko: Pri PC
Kontaktovať používateľa:

Re: Advent of Code

Príspevok od používateľa Michaelo »

Mne funguje bez problemov.
Philop25
Medium Expert
Medium Expert
Príspevky: 134
Registrovaný: 08 aug 2010, 16:13

Re: Advent of Code

Príspevok od používateľa Philop25 »

look and say v C#, 40 iterácii dalo za 30 sekúnd. Teraz som po 10 minútach na 45. iterácii :D

// OK. Použil som StringBuilder a vypočítalo do pár sekúnd
aacid
Hardcore addict
Hardcore addict
Príspevky: 8135
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Re: Advent of Code

Príspevok od používateľa aacid »

dnes som robil Day 13, bolo treba vypocitat najoptimalnejsie rozlozenie ludi pri stole, aby bol stol co najstastnejsi...
druha cast bolo to iste akurat tam mas pridat seba... vyslo mi ze so mnou je stol menej stastnejsi nez bezomna :(

:D
Napísať odpoveď