Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Soutěž: Machr na algoritmy - Sudoku

Ostatní jazyky Ostatní programovací jazyky Machr na algoritmy - Sudoku

Soutěž již skončila

Zadání

Jak již název machra napovídá, budete si tentokrát hrát se sudoku. Přesněji řečeno ho budete řešit. Ještě přesněji řečeno napíšete konzolovou aplikaci, která ho vyřeší za vás.

Vstup bude vypadat nějak takto:

_ _ _ 1 _ 2 _ _ _
3 _ 9 8 _ 4 1 _ 7
8 _ _ _ _ _ _ _ 2
_ 3 _ 4 _ 6 _ 7 _
4 _ _ _ _ _ _ _ 1
_ 1 _ 2 _ 5 _ 9 _
5 _ _ _ _ _ _ _ 8
1 _ 6 5 _ 3 9 _ 4
_ _ _ 6 _ 8 _ _ _

(mezi znaky jsou mezery, rozložení chybějících čísel může být jakékoli)
Výstup bude stejný, jen místo podtržítek vypíšete doplněné číslice.

Pokud by se stalo, že řešení existuje více, vypište jedno z nich, je jedno které.

Povolené jazyky: C, C++, C#, Pascal, Java, Python
Pokud budete chtít použít jiný (nebo budete mít nějaký dotaz k soutěži), zeptejte se v komentářích.

Výhra

Vítěz dostane placku Machr a ocenění do portfolia.

Výhra

Výsledky

Jméno bodů Řešení ( Stáhnout vše )
patrik.valkovic 92 Stáhnout řešení
Libor Šimo (libcosenior) 85 Stáhnout řešení
rikenbekr 82 Stáhnout řešení
Luboš Běhounek (Satik) 80 Stáhnout řešení
D0ll0k 77 Stáhnout řešení
Lukáš Křehula 75 Stáhnout řešení
Michael Škrášek 75 Stáhnout řešení
grygerek.tomas 70 Stáhnout řešení
krepsy3 70 Stáhnout řešení
Vlado Cukalovsky 57 Stáhnout řešení
LukasMegPrask 52 Stáhnout řešení
Ladislav Ondris 30 Stáhnout řešení
Aktivity (1)
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:21.11.2016 0:49

V této soutěži budete řešit sudoku.

Soutěž končí 3. prosince 12:00, tak se nezapomeň zapojit! :)

Odpovědět  +1 21.11.2016 0:49
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Jan Bezdíček
Redaktor
Avatar
Jan Bezdíček:21.11.2016 1:00

PHP CLI ? :D

 
Nahoru Odpovědět 21.11.2016 1:00
Avatar
Jan Bezdíček
Redaktor
Avatar
Jan Bezdíček:21.11.2016 3:48

A vubec ... proc CLI, formular pro policka a zpracovani v PHP, muze byt ? :)

 
Nahoru Odpovědět 21.11.2016 3:48
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Jan Bezdíček
Zdeněk Pavlátka:21.11.2016 12:45

Může být, pokud vstup bude řešen pomocí 1 textarea do kterého zadám to samé co ostatním. A výstup bude vyřešený nějak inteligentně, aby se dal zkopírovat jako text v takové podobě, jako mají mít výstup ostatní (třeba v tom samém textarea ;) ).

Nahoru Odpovědět 21.11.2016 12:45
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Martin Dráb:21.11.2016 12:50

Vstup na aplikaci bude čekat na standardním vstupu, nebo se očekává, že název vstupního souboru bude třeba jedním za rgumentů příkazové řádky?

Nahoru Odpovědět  +2 21.11.2016 12:50
2 + 2 = 5 for extremely large values of 2
Avatar
coells
Redaktor
Avatar
 
Nahoru Odpovědět  +2 21.11.2016 13:45
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Martin Dráb
Zdeněk Pavlátka:21.11.2016 15:12

Standardní vstup, standardní výstup

Nahoru Odpovědět  +1 21.11.2016 15:12
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Petr Stastny
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Petr Stastny:21.11.2016 15:48

Budu tedy zadání načítat ze souboru a vypisovat do konzole? A sudoku bude 9x9, nebo to mám někde nechat uživatele vybrat?

 
Nahoru Odpovědět 21.11.2016 15:48
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Petr Stastny
Martin Dráb:21.11.2016 15:53

Standardní vstup = zadání načteš ze standardního vstupu (nějaký ten input stream, std::cin v C++), což může a nemusí být ve skutečnosti soubor. Podobně s výstupem.

Nahoru Odpovědět  +2 21.11.2016 15:53
2 + 2 = 5 for extremely large values of 2
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Petr Stastny
Zdeněk Pavlátka:21.11.2016 16:25

Bude to klasické 9×9 sudoku

Nahoru Odpovědět 21.11.2016 16:25
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
krepsy3:21.11.2016 22:17

Dobře, já ale dělám v C#. To tě to mám nechat psát do konzole? Nebo dva texťáky in.txt a out.txt? Nebo úprava jednoho texťáku? Nebo výběr pře ty console args?

Nahoru Odpovědět 21.11.2016 22:17
Programátor je stroj k převodu kávy na kód.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na krepsy3
Zdeněk Pavlátka:21.11.2016 23:14

V C# standardní vstup a výstup == Console.

Nahoru Odpovědět 21.11.2016 23:14
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
krepsy3:22.11.2016 8:18

Čili postupně vyplníš a odentruješ 9 řádků? A devět dostameš?

Nahoru Odpovědět 22.11.2016 8:18
Programátor je stroj k převodu kávy na kód.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na krepsy3
Zdeněk Pavlátka:22.11.2016 9:47

dá se to tak říct

Nahoru Odpovědět 22.11.2016 9:47
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Pjanus
Člen
Avatar
Pjanus:22.11.2016 18:01

Mohl bych pro řešení použít Haskell?

 
Nahoru Odpovědět 22.11.2016 18:01
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Nahoru Odpovědět 22.11.2016 19:44
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Petr Stastny
Redaktor
Avatar
Petr Stastny:23.11.2016 18:48

Tak mám zatím 2 algoritmy, ten první 'hloupý' vyřeší jenom velmi jednoduché sudoku. Ten druhý, chytrý, prohlásí každé zadání které dostane za neplatné :D

Jak jste daleko?

 
Nahoru Odpovědět  +2 23.11.2016 18:48
Avatar
Pavel Novák
Člen
Avatar
Pavel Novák:23.11.2016 18:58

Dotaz: normální sudoku 9×9, odentruješ každé číslo a potom ti má vyjet správné řešení a napsat, jestli to měl dotyčný správně? Nebo jen jestli to měl nebo neměl správně a ukončit?

Nahoru Odpovědět 23.11.2016 18:58
Nikdy se nevzdávat!
Avatar
Petr Stastny
Redaktor
Avatar
Odpovídá na Pavel Novák
Petr Stastny:23.11.2016 19:01

Jestli jsem to správně pochopil, tak:

  • Načteš sudoku - 9x Console.ReadLine(), přičemž podtržítko _ je prázdno a číslo je ... číslo, odděleno mezerou
  • Vyřešíš sudoku, tedy doplníš čísla místo podtržítek ze zadání
  • Vykreslíš sudoku
 
Nahoru Odpovědět  +3 23.11.2016 19:01
Avatar
Odpovídá na Zdeněk Pavlátka
Josef Kuchař (Pepa489):23.11.2016 19:12

Bude to jako one line nebo multiline vstup ?

Nahoru Odpovědět 23.11.2016 19:12
2x piš, jednou debuguj
Avatar
Pavel Novák
Člen
Avatar
Odpovídá na Petr Stastny
Pavel Novák:23.11.2016 19:17

"Vykreslíš sudoku" - celý jeho řešení nebo správný řešení?

Nahoru Odpovědět 23.11.2016 19:17
Nikdy se nevzdávat!
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:23.11.2016 19:53

PRO VŠECHNY, KDO TO DOSUD NEPOCHOPILI:
Na standardním vstupu dostanete 9 řádek, na každé bude 9 číslic / podtržítek oddělených mezerami.
Na standardní výstup vypíšete 9 řádek, na každé bude 9 číslic oddělených mezerami.
Výstup je správný:

  1. pokud je platným řešením (dle klasických pravidel sudoku)
  2. pokud na dané pozici ve vstupu byla číslice, bude stejná jako ta na výstupu
Nahoru Odpovědět  +3 23.11.2016 19:53
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Petr Stastny
Michael Škrášek:23.11.2016 20:55

Zatím jsem si rozvrhl program a vyřešil tu sudoku sám :D

Nahoru Odpovědět  +2 23.11.2016 20:55
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it ... Bill Gates
Avatar
Pavel Novák
Člen
Avatar
Pavel Novák:23.11.2016 21:01
:D
Nahoru Odpovědět 23.11.2016 21:01
Nikdy se nevzdávat!
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Petr Stastny
Martin Dráb:23.11.2016 21:53

Zatím jsem ve stavu doufání, že mi to zabere max. dva večery :-). Takže je ještě spooousta času.

Nahoru Odpovědět  +1 23.11.2016 21:53
2 + 2 = 5 for extremely large values of 2
Avatar
Jan Bezdíček
Redaktor
Avatar
Jan Bezdíček:24.11.2016 2:21

Tak ja si napsal "na koleni resic sudoku" ... vlozil tam toto sudoku a byl cely stastny, ze to funguje a uz jsem to pomalu nahraval. No pak jsem zjistil, ze sudoku jsou i slozitejsi, nez jen takove, ktere se resi tim, ze "kouknu jestli je to v radku, sloupci nebo "3x3 bloku" a bude opravdu treba pouzit algoritmus.

Tak jsem si zasel pro zmrzlinu, zapnul TBBT a se slzou v oku si jdu lehnout ...

 
Nahoru Odpovědět  +4 24.11.2016 2:21
Avatar
Jan Vargovský
Redaktor
Avatar
Jan Vargovský:24.11.2016 17:58

Hint: Kdo si to chce fakt otestovat, tak si najděte nějaký task na nějakém online judgi (uva, ...) :)

 
Nahoru Odpovědět  +1 24.11.2016 17:58
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Jan Bezdíček
Jan Vargovský:24.11.2016 17:59

Ono to jde, jen to chce backtrackovat, když už to "nemá" řešení :)

 
Nahoru Odpovědět  +2 24.11.2016 17:59
Avatar
gcx11
Redaktor
Avatar
Odpovídá na Jan Vargovský
gcx11:24.11.2016 19:25

Kromě toho, co vypsal Jan Bezdíček, tak existují i další metody při řešení. Backtracking bych použil, až když i ty další metody selžou.

 
Nahoru Odpovědět  +1 24.11.2016 19:25
Avatar
Petr Stastny
Redaktor
Avatar
Petr Stastny:24.11.2016 20:29

...

Editováno 24.11.2016 20:30
 
Nahoru Odpovědět  -2 24.11.2016 20:29
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):26.11.2016 13:44

Moze sa stat, ze testovacie zadanie nebude riesitelne?

Nahoru Odpovědět  +4 26.11.2016 13:44
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Libor Šimo (libcosenior)
Zdeněk Pavlátka:26.11.2016 18:19

Pro každý zadaný vstup bude existovat alespoň jedno řešení.

Nahoru Odpovědět  +1 26.11.2016 18:19
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):26.11.2016 18:20

Dik. Aj ked vlastne by na jedno zadanie malo podla prisnych pravidiel existovat iba jedno riesenie. ;-)

Editováno 26.11.2016 18:21
Nahoru Odpovědět 26.11.2016 18:20
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):26.11.2016 21:13

Ako zisťujem, jednoduché to nebude. :-S

Nahoru Odpovědět 26.11.2016 21:13
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Libor Šimo (libcosenior)
Zdeněk Pavlátka:26.11.2016 22:09

Aj ked vlastne by na jedno zadanie malo podla prisnych pravidiel existovat iba jedno riesenie.

Tak nějak nechápu, co tím myslíš...

Nahoru Odpovědět  +1 26.11.2016 22:09
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Martin Dráb:26.11.2016 22:54

Podle mě tím naráží na to, že správné Sudoku má mít právě jedno řešení. Ale setkal jsem se s různými variantami (jen čísla 1-6, některá políčka není možné vyplnit...), takže v tomto nevidím problém.

Nahoru Odpovědět 26.11.2016 22:54
2 + 2 = 5 for extremely large values of 2
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):26.11.2016 22:57

Dnes som o sudoku precital velke mnozstvo stranok a niekde som sa docital, ze prave sudoku ma vzdy len jedno riesenie.
Myslim, ze to nemusime brat az tak vazne, na nete sa toho popise.... :-D

Nahoru Odpovědět  +2 26.11.2016 22:57
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
krepsy3:26.11.2016 23:09

Možná, že to tak páni Japonci původně zamýšleli, když sudoku vzniklo. Ona právě ta nejednoznačnost je při papírovém řešení s tužkou v ruce to nejhorší, člověk nemá jistotu, že mu to nejednoznačné řešení neudělá nějakou paseku. Takže proč ne, na algoritmus by to nemělo mít vliv. Pokud nebude používat náhodně generované řady čísel, bude mít při prvním řešení vždy nižší index nižší číslo než jeho protějšek s vyšším indexem (resp. vyšší, záleží na směru iterací).

Editováno 26.11.2016 23:10
Nahoru Odpovědět 26.11.2016 23:09
Programátor je stroj k převodu kávy na kód.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na krepsy3
Zdeněk Pavlátka:26.11.2016 23:49

Pro účely této soutěže by na počtu řešení moc nemělo záležet (tedy až na to, že nějaké existuje). U výstupu programů se nebude kontrolovat jedno konkrétní, ale to, jestli splňuje základní pravidla, takže je úplně jedno, které vypíšete.

Nahoru Odpovědět  +3 26.11.2016 23:49
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
krepsy3:27.11.2016 8:43

Ještě se chci zeptat na to bodování. Předpokládám, že budeš testovat např. 20 různě obtížných vstupů, s tím, že oboduješ podle úspěšnosti. Jaká budou přesně další kritéria i s počty bodů

Nahoru Odpovědět 27.11.2016 8:43
Programátor je stroj k převodu kávy na kód.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na krepsy3
Zdeněk Pavlátka:27.11.2016 11:57

Popravdě to ještě nemám na 100% rozhodnuté, zatím to vypadá že polovina bodů bude daná úspěšností v řešení 20 vstupů,

Nahoru Odpovědět 27.11.2016 11:57
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:1.12.2016 16:36

Nudil jsme se na dvou přednáškách ve škole, tak tam máte i něco mojeho :D

Nahoru Odpovědět 1.12.2016 16:36
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):1.12.2016 18:42

Sorry, mam hrube prsty a klikol som nechtiac na minus. :-(

Nahoru Odpovědět 1.12.2016 18:42
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Libor Šimo (libcosenior):2.12.2016 17:40

Tak som tiež niečo vytvoril. Dúfam, že sa bude páčiť. :-P

Nahoru Odpovědět 2.12.2016 17:40
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):2.12.2016 18:54

Zdenku, tak sa mi zda, ze toto bude tazke vyhodnocovanie. 8-)

Nahoru Odpovědět  +1 2.12.2016 18:54
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
patrik.valkovic:2.12.2016 19:41

Příliš deterministické zadání :D Není to zas takový problém vypočítat, byť jen hrubou silou.

Nahoru Odpovědět  +2 2.12.2016 19:41
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na patrik.valkovic
Libor Šimo (libcosenior):2.12.2016 19:43

Práve preto asi bude ťažké rozhodnúť o víťazovi.

Nahoru Odpovědět  +1 2.12.2016 19:43
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
krepsy3
Redaktor
Avatar
krepsy3:2.12.2016 20:07

Velkou roli bude tedy jistě hrát správný objektový návrh (nemám), přehledný kód (snad mám tak napůl) a zakomentvání :D

Nahoru Odpovědět  +1 2.12.2016 20:07
Programátor je stroj k převodu kávy na kód.
Avatar
krepsy3
Redaktor
Avatar
krepsy3:2.12.2016 20:53

oprava: zakomentování (ještě nemám) :D

Noc bude dnes dlouhá...

Nahoru Odpovědět 2.12.2016 20:53
Programátor je stroj k převodu kávy na kód.
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
IT Man:2.12.2016 22:34

Ale tak zase pěkné vidět tolik soutěžících. :)

Nahoru Odpovědět  +2 2.12.2016 22:34
Cokoliv a kdokoliv může jednou uspět.
Avatar
Dominik Chrastek:2.12.2016 22:48

Prolog?

Nahoru Odpovědět 2.12.2016 22:48
Matematika: jednoduchá pravidla, složité následky.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na IT Man
krepsy3:2.12.2016 22:49

No, to jo ty káre... :D
Já už na tom zítra nebudu moct dělat, takže to musím dodělat teď, což je celkem fór, protože jsem si špatně navrhl rekurzi, takže celou hlavní smyčku předělávám odznova ;)

Nahoru Odpovědět  +1 2.12.2016 22:49
Programátor je stroj k převodu kávy na kód.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Nahoru Odpovědět 2.12.2016 23:16
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Dominik Chrastek
patrik.valkovic:2.12.2016 23:45

To by mě zrovna zajímalo, jak by to v něm vypadalo :D
A protože ho děláme ve škole :D

Nahoru Odpovědět 2.12.2016 23:45
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na krepsy3
rikenbekr:3.12.2016 5:30

Dobrou noc :D

Nahoru Odpovědět  +1 3.12.2016 5:30
In world without fences and walls, who needs Gates and Windows?
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na rikenbekr
krepsy3:3.12.2016 8:39

No, jak vidíš, kód jsem dokončil cca. o půl druhé. Rozběhat se mi to podařilo už něco po čtvrt na jednu (od půl dvanácté jsem tam hledal asi tři bugy - nějaké chybějící podmínky a tak), a tu hodinu jsem jen psal ///summary k veřejným metodám a třídám a zakomentovával jsem interní kódy. Ani bych nevěřil, že to může zabrat tolik času, dohromady ty všechny soubory měly (před komentováním) cca. 220 řádek. Takže nechápu, jak je to možné :D

Nahoru Odpovědět 3.12.2016 8:39
Programátor je stroj k převodu kávy na kód.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Dominik Chrastek
krepsy3:3.12.2016 8:40

Co je to za jazyk? :D

Editováno 3.12.2016 8:40
Nahoru Odpovědět 3.12.2016 8:40
Programátor je stroj k převodu kávy na kód.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
krepsy3:3.12.2016 8:44

Hele psal jsi, že každé sudoku bude mít alespoň jedno řešení, já se třeba pachtil i s tím, kdyby náhodou nemělo. A jak teda bude probíhat bodování programů, máž už to rozmyšleno? Docela by mě to zajímalo, i když kód už mám finální ;)

Nahoru Odpovědět 3.12.2016 8:44
Programátor je stroj k převodu kávy na kód.
Avatar
Michal Haňáček:3.12.2016 8:52

Škoda, chtěl jsem se zůčastnit, mám rozepsanej kód ale nestíhám to odladit ... tak třeba příště ;).

Nahoru Odpovědět 3.12.2016 8:52
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Odpovídá na krepsy3
Libor Šimo (libcosenior):3.12.2016 9:17

Nemôžem odpovedať za Zdenka, ale myslím si, že to rozhodne až po prezretí a otestovaní aplikácií.

Nahoru Odpovědět  +2 3.12.2016 9:17
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na krepsy3
patrik.valkovic:3.12.2016 11:19

To je čiště logický jazyk :D
Skvěle se hodí na problémy typu "máte 5 domů, v nich žije 5 lidí, člověk číslo 1 chodí na návštěvu k 3, v domě 4 bydlí Pavel.....kdo bydlí v jakém domě" :D
Ono by to na ty piškvorky šlo, ale bylo by to velice neefektivní (i když by stačilo jen pár řádků), protože podle toho jak Prolog funguje by bruteforcoval všechny možnosti :/

Nahoru Odpovědět  +2 3.12.2016 11:19
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na patrik.valkovic
Libor Šimo (libcosenior):3.12.2016 11:44

A nemoze tych 5 ludi zit v jednom z 5 domov? :-D

Nahoru Odpovědět  +1 3.12.2016 11:44
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
D0ll0k
Člen
Avatar
D0ll0k:3.12.2016 11:53

Uff.... ještě jsem přišel na způsob jak ten algorytmus urychlit, když najednou nám vypadl internet a já se bál, že nenaskočí dříve jak ve dvanáct a já to nestihnu odevzdat.

Nahoru Odpovědět 3.12.2016 11:53
Veni, vidi, programmato
Avatar
Libor Šimo (libcosenior):3.12.2016 13:23

Neviem ci tu pojde gif, ak ano, v prilohe si ho pozrite.

Nahoru Odpovědět  +4 3.12.2016 13:23
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
rikenbekr:3.12.2016 14:06

Nechápu pointu. Je fakt že sem značně nevyspalý tak možná budu psát nesmysly.
Ale vypadá to jako by minimálně část toho sudoku z gifu byla tipovaná. Toto zadání lze ale řešit tou nejjednoduší metodou a to přímo (bez tipování).

Nahoru Odpovědět 3.12.2016 14:06
In world without fences and walls, who needs Gates and Windows?
Avatar
Odpovídá na rikenbekr
Libor Šimo (libcosenior):3.12.2016 14:14

Je to len ukazka, ako moze pracovat backtracking, ktory vyriesi kazde riesitelne zadanie.

Nahoru Odpovědět 3.12.2016 14:14
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
rikenbekr:3.12.2016 14:23

Jo aha, vaše práce?

Editováno 3.12.2016 14:24
Nahoru Odpovědět  +1 3.12.2016 14:23
In world without fences and walls, who needs Gates and Windows?
Avatar
Odpovídá na rikenbekr
Libor Šimo (libcosenior):3.12.2016 14:28

Na sieti si tykame a nie, len som to skopcil z webu. ;-)

Nahoru Odpovědět  +1 3.12.2016 14:28
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
rikenbekr:3.12.2016 14:28

No to sem už slyšel a četl, ale mě doma učili starším lidem vykat :) a zvyk je železná košile.

Editováno 3.12.2016 14:29
Nahoru Odpovědět  +3 3.12.2016 14:28
In world without fences and walls, who needs Gates and Windows?
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:3.12.2016 16:21

12 lidí na machra...to tu už dlouho nebylo :D

Nahoru Odpovědět  +2 3.12.2016 16:21
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na patrik.valkovic
Libor Šimo (libcosenior):3.12.2016 16:25

Hold zaujimave zadanie, na ktore si mnohi trufnu.
Len sa bojim, ze kym to Zdenek vyhodnoti, pretecie vela vody.

Nahoru Odpovědět 3.12.2016 16:25
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Zdeněk Pavlátka
rikenbekr:3.12.2016 16:28

Takže o bodech rozhodne hlavně přehlednost kódu? Bude slovní hodnocení?

Nahoru Odpovědět 3.12.2016 16:28
In world without fences and walls, who needs Gates and Windows?
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na D0ll0k
krepsy3:3.12.2016 16:33

Odkdy píšeš algorYtmus? :D

Ne, nejsem grammar nazi, ale s D0ll0kem se tak trochu známe :)

Nahoru Odpovědět 3.12.2016 16:33
Programátor je stroj k převodu kávy na kód.
Avatar
D0ll0k
Člen
Avatar
Odpovídá na krepsy3
D0ll0k:3.12.2016 16:35

Oops! Stane se :D

Nahoru Odpovědět 3.12.2016 16:35
Veni, vidi, programmato
Avatar
Odpovídá na rikenbekr
Libor Šimo (libcosenior):3.12.2016 16:36

Mna by skor zajimalo ako sa da porovnat apka v neobjektovom jazyku s apkou v objektovom, teda ak riesenie vsetkych zadani bude spravne a rychle.

Editováno 3.12.2016 16:37
Nahoru Odpovědět 3.12.2016 16:36
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
krepsy3:3.12.2016 16:36

A taky bylo hodně času, během těch 12 dní prostě mělo víc lidí čas a motivaci o tom popřemýšlet a něco zplácat :D
Tohle byl třeba můj první pokus na machrovi, u těch 5 denních jsem si většinou řekl, že "to nestíhám" :)

Nahoru Odpovědět 3.12.2016 16:36
Programátor je stroj k převodu kávy na kód.
Avatar
D0ll0k
Člen
Avatar
Odpovídá na krepsy3
D0ll0k:3.12.2016 16:36

Teď nad tím tak přemýšlím... asi jsem to napsal i ve zdrojáku s tvrdym Y

Nahoru Odpovědět 3.12.2016 16:36
Veni, vidi, programmato
Avatar
Odpovídá na D0ll0k
Libor Šimo (libcosenior):3.12.2016 16:39

Neboj, za to nebudu body dolu. :-)

Nahoru Odpovědět 3.12.2016 16:39
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
krepsy3:3.12.2016 16:39

To je zajímavý problém... Spíš asi není od věci to, že porotce jazyky zná, ví co jde a nejde a "pozná dobrý kód", i když si moc netroufnu říct, nakolik je to subjektivní, když nikdo asi není takovej magor, aby posílal do machra kód s věcmi typu

int uhfekwubfi = 3, febiwofnjkkl = 8; atd. :D:D:D

Editováno 3.12.2016 16:41
Nahoru Odpovědět  +1 3.12.2016 16:39
Programátor je stroj k převodu kávy na kód.
Avatar
D0ll0k
Člen
Avatar
Nahoru Odpovědět 3.12.2016 16:40
Veni, vidi, programmato
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na D0ll0k
krepsy3:3.12.2016 16:42

Neboj... a Fröhlichová (naše češtinářka) tyhle slova nezná... :D

Nahoru Odpovědět 3.12.2016 16:42
Programátor je stroj k převodu kávy na kód.
Avatar
Odpovídá na D0ll0k
Libor Šimo (libcosenior):3.12.2016 16:45

Hlavne aby si mal tvrdy algorYtmus v kode. ;-)

Nahoru Odpovědět 3.12.2016 16:45
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
krepsy3:3.12.2016 16:48

Tak ono mu to běá krásně, ještě to má urychlený cachováním možných čísel pro každou pozici, takže tvrdý je algoritmus jistě dostatečně ;)

Nahoru Odpovědět  +1 3.12.2016 16:48
Programátor je stroj k převodu kávy na kód.
Avatar
Libor Šimo (libcosenior):3.12.2016 16:51

To som sa pokusal aj ja, ale zrychlenie som nevidel.

Nahoru Odpovědět 3.12.2016 16:51
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Libor Šimo (libcosenior):3.12.2016 17:08

Cakam na vysledky.
Dohovoril som. Howk!

Nahoru Odpovědět 3.12.2016 17:08
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:3.12.2016 17:10

Škoda že se nehodnotí rychlost....bych ty vaše C# rozbil jak nic :D

Nahoru Odpovědět 3.12.2016 17:10
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na patrik.valkovic
krepsy3:3.12.2016 17:23

Jako s c++? Tak to asi jo... :D Vo hodně :D

Nahoru Odpovědět 3.12.2016 17:23
Programátor je stroj k převodu kávy na kód.
Avatar
Odpovídá na patrik.valkovic
Luboš Běhounek (Satik):3.12.2016 17:53

Za jak dlouho ti to vyřeší tohle sudoku?:

___1_2___
8_______2
___4___7_
4_______1
_1___5___
________8
1__5_____
_____8___
:)
Nahoru Odpovědět 3.12.2016 17:53
:)
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Nahoru Odpovědět  +1 3.12.2016 18:03
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Luboš Běhounek (Satik)
Libor Šimo (libcosenior):3.12.2016 18:04

Si robíš srandu?
Musel som porušiť sľub mlčania po Howk, ale máš tam len 8 riadkov.

Nahoru Odpovědět  +1 3.12.2016 18:04
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Nahoru Odpovědět  +1 3.12.2016 18:06
:)
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
patrik.valkovic:3.12.2016 18:07

Úplně prázdné sudoku vyřeším někde pod 100ms. Ale to je irelevantné, vzhledem k tomu že máme jiné stroje ;-)

Nahoru Odpovědět 3.12.2016 18:07
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na patrik.valkovic
Luboš Běhounek (Satik):3.12.2016 18:09

zkus tohle, ciste ze zvedavosti :)

Nahoru Odpovědět 3.12.2016 18:09
:)
Avatar
Nahoru Odpovědět 3.12.2016 18:09
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Luboš Běhounek (Satik):3.12.2016 18:16

To je slušný, to moje c# řešení mi doma běželo myslím podobně rychle, předpokládám ale, že máš asi pomalejší procesor, takže to máš rychlejší :)

Nahoru Odpovědět 3.12.2016 18:16
:)
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Luboš Běhounek (Satik)
Zdeněk Pavlátka:3.12.2016 18:21

když počítám jen řešení (ne vstup a výstup) tak to u mě běží 14 ms (C#)

Nahoru Odpovědět 3.12.2016 18:21
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Nahoru Odpovědět 3.12.2016 18:28
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
patrik.valkovic:3.12.2016 18:28
9 7 6 1 8 2 5 4 3
8 5 4 9 7 3 6 1 2
3 2 1 4 5 6 8 7 9
4 9 8 6 3 7 2 5 1
7 1 2 8 9 5 4 3 6
6 3 5 2 4 1 7 9 8
1 8 9 5 6 4 3 2 7
2 4 7 3 1 8 9 6 5
5 6 3 7 2 9 1 8 4

real    0m0.010s
user    0m0.008s
sys     0m0.000s

Včetně parsování a výpisu.

Nahoru Odpovědět 3.12.2016 18:28
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):3.12.2016 18:29

Vstup = pole zadané v kóde
Kontrola špatného vstupu
Výstup.

Nahoru Odpovědět 3.12.2016 18:29
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:3.12.2016 18:37

Pár případů se mi podařilo dostat pod 0,006s reálného času, ale je to ještě ve virtuálce, takže by se to dalo ještě stáhnout :D

Nahoru Odpovědět 3.12.2016 18:37
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Libor Šimo (libcosenior):3.12.2016 18:45

No hold amaterovi sa tazko zrovnava s vystudovanym profikom. :-`

Nahoru Odpovědět 3.12.2016 18:45
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
patrik.valkovic:3.12.2016 18:46

No do vystudování mám ještě daleko :D Na minulé úloze z prográmka jsme strávil 60 hodin :/

Nahoru Odpovědět 3.12.2016 18:46
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Luboš Běhounek (Satik)
rikenbekr:3.12.2016 22:23

Takže když jsem to psal v C a čisté řešení trvá 6 ms, tak je to dobré nebo špatné?
Procesor: Intel core i5-5200U

Nahoru Odpovědět 3.12.2016 22:23
In world without fences and walls, who needs Gates and Windows?
Avatar
Odpovídá na rikenbekr
Libor Šimo (libcosenior):4.12.2016 7:42

Viac nez len dobre.

Nahoru Odpovědět 4.12.2016 7:42
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
rikenbekr:4.12.2016 13:23

To nechápu, včera to bylo 6 ms a dneska ráno je to 15 ms. Jak měříte časový intervalu v C?

Nahoru Odpovědět 4.12.2016 13:23
In world without fences and walls, who needs Gates and Windows?
Avatar
Odpovídá na rikenbekr
Libor Šimo (libcosenior):4.12.2016 13:52

Ja to neriesim. Necham ukoncit program a v konzole s vypise vysledok.
Rozdielne vysledky su ovplyvnene behom ineho probramu na pozadi.
Staci viac krat spustit a dostanes sa na to povodne.

Nahoru Odpovědět 4.12.2016 13:52
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
rikenbekr:4.12.2016 14:12

Jak nechám ukončit program? To je C#?
A pořád to nevysvětluje 0 ms, to je nemožné.
Navíc včera to bylo stabilní a to byl počítač více zatížen.

Editováno 4.12.2016 14:13
Nahoru Odpovědět 4.12.2016 14:12
In world without fences and walls, who needs Gates and Windows?
Avatar
Odpovídá na rikenbekr
Libor Šimo (libcosenior):4.12.2016 14:17

Ale nie, je to c. Aby program v c po spusteni exe suboru len nepreblikol na obrazovke, treba na koniec funkcie main, pred return 0, napisat napr. getchar(), aby konzola oatala otvorena, kym nebude stlacena nejaka klavesa.

Nahoru Odpovědět 4.12.2016 14:17
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na rikenbekr
Libor Šimo (libcosenior):4.12.2016 14:19

Cize nechat ukoncit program znamena zakomentovat riadok getchar().

Nahoru Odpovědět 4.12.2016 14:19
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
rikenbekr:4.12.2016 14:32

No já to původně tvořil na Linuxu a proto tam nic podobného nemám protože textové prostředí nemá kam zmizet.
Když si otevřu cmd ve Windows a spustím program tak to vypíše jenom to co sem posílal.

Nahoru Odpovědět 4.12.2016 14:32
In world without fences and walls, who needs Gates and Windows?
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
rikenbekr:4.12.2016 14:49

No já to původně tvořil na Linuxu a proto tam nic podobného nemám (čekání na stisk klávesy) protože textové prostředí nemá kam zmizet.
Když si otevřu cmd ve Windows a spustím program tak to vypíše jenom to co sem posílal.
Sorry za double post ale zmizelo mi tlačítko edit

Nahoru Odpovědět 4.12.2016 14:49
In world without fences and walls, who needs Gates and Windows?
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
krepsy3:4.12.2016 15:57

Tak můj C# udělal Lubošovo Sudoku za ostudných 298 ms :D (měřeno Visual studiem pomocí kroková v debugu)

Můj stroj: Dell Inspiron 13 7000 series (2015)

Nahoru Odpovědět 4.12.2016 15:57
Programátor je stroj k převodu kávy na kód.
Avatar
Odpovídá na krepsy3
Libor Šimo (libcosenior):4.12.2016 16:13

Skusil si aj release? Tam by to malo byt o nieco lepsie.

Nahoru Odpovědět 4.12.2016 16:13
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na rikenbekr
Libor Šimo (libcosenior):4.12.2016 16:18

Dnes som testoval ciastocne pouzitie binarnych operacii, ale rychlost sa zatial nezlepsila.

Nahoru Odpovědět 4.12.2016 16:18
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Libor Šimo (libcosenior):4.12.2016 16:21

Ono je asi skoro jedno aky jazyk pouzijes. Ak je kod napisany optimalne, strojrovy kod asi bude rovnaky alebo skoro rovnaky.

Editováno 4.12.2016 16:22
Nahoru Odpovědět 4.12.2016 16:21
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
rikenbekr:4.12.2016 16:27

Spouštíte program v příkazové řádce, nebo nějakém vývojovém prostředí?

Nahoru Odpovědět 4.12.2016 16:27
In world without fences and walls, who needs Gates and Windows?
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na krepsy3
patrik.valkovic:4.12.2016 16:52

Debug verze je mnohem pomalejší než Release. Můj program to udělal za 30ms bez optimalizace a za 6ms s optimalizací (to fakt píšu tak hrozně?!), takže zkus release a pustit to z příkazové řádky. Čas měřím (na linuxu) pomocí

time ./main.exe < vstup.txt

Jen je problém, že například já dělám už nějaké výpočty během parsování, takže těžko otestuju program bez načtené vstupů a výstupu :D

Nahoru Odpovědět 4.12.2016 16:52
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na patrik.valkovic
Libor Šimo (libcosenior):4.12.2016 17:13

Ak sa hodnoti aj cas, je fajn ze to nehodnotis ty. :-D

Nahoru Odpovědět 4.12.2016 17:13
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Libor Šimo (libcosenior):4.12.2016 17:14

Priznam sa, chcel by som machra. :-)

Editováno 4.12.2016 17:15
Nahoru Odpovědět  +1 4.12.2016 17:14
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:4.12.2016 17:40

Ono paradoxně před rokem jsem dělal něco podobného (tentokrát jsem pro měnu vyplňova Kakuro) do školy, ale to jsem nestihl :D A tohle jsem měl za 3 hodiny napsané, je fajn vidět nějaký progress ;-)

Nahoru Odpovědět 4.12.2016 17:40
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na patrik.valkovic
rikenbekr:4.12.2016 17:48

Tak jsem to skusil na Linuxu:
Doba běhu bez výpočetní části (in, out):

real    0m0.001s
user    0m0.000s
sys     0m0.000s

Výstup celého programu

Solve :
7 3 6 1 5 2 8 4 9
8 4 5 7 6 9 1 3 2
2 9 1 4 8 3 5 7 6
4 5 2 8 7 6 3 9 1
9 1 8 3 2 5 4 6 7
6 7 3 9 1 4 2 5 8
1 8 9 5 4 7 6 2 3
5 2 7 6 3 8 9 1 4
3 6 4 2 9 1 7 8 5

real    0m0.007s
user    0m0.004s
sys     0m0.000s

Mám k tomu otázku:
co jsou ty jednotlivé časy(real, user, sys)?
Tyto výsledky jsou z terminálu otevřeném v grafickém prostředí.
Když jsem zkusil to samé v textovém sezení byl real 15 - 28 ms cca.
Všiml si někdo že to zadání co se tu testovalo má vícero řešení? (každý ho má jiné)

Nahoru Odpovědět 4.12.2016 17:48
In world without fences and walls, who needs Gates and Windows?
Avatar
rikenbekr
Člen
Avatar
Odpovídá na patrik.valkovic
rikenbekr:4.12.2016 17:50

Je nějaký způsob jak změřit kolik kterých instrukcí program provedl? To by bylo nejobjektivnější srovnání.
Jsem jediný kdo používá textový editor a kompilátor v příkazové řádce (gcc)? :D

Editováno 4.12.2016 17:52
Nahoru Odpovědět 4.12.2016 17:50
In world without fences and walls, who needs Gates and Windows?
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na rikenbekr
patrik.valkovic:4.12.2016 17:55

sys je systémové volání - to znamená jak dlouho čekal tvůj program na nějakou operaci systému (například přidělení paměti), real je reálný čas, jak dlouho proces běžel (včetně započítání jiných procesů, které běžely na pozadí atd, no a user je skutečný čas, který běžel jen samotný program (bez započítání jiných procesů).
Instrukce jdou provést pomocí

valgrind --tool=callgrind ./main.exe < input.txt

Spočítá celkový počet instrukcí (nebo volání nebo co to počítá) a řekne ti i v jaké funkci trávíš nejvíce času, jak se funkce mezi sebou volají (a kolikrát) a podobné užitečné věci. Pro prohlížení logu používám kcachegrind.

Nahoru Odpovědět  +1 4.12.2016 17:55
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Libor Šimo (libcosenior):4.12.2016 18:27

Myslim, ze to nechame na Zdenka. Aj tak ma tazku ulohu.

Nahoru Odpovědět  +1 4.12.2016 18:27
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
krepsy3
Redaktor
Avatar
krepsy3:4.12.2016 20:59

No, to jo. O "vyloučení" budou muset nejpíš rozhodovat i blbiny.

Výstup bude stejný, jen místo podtržítek vypíšete doplněné číslice.

Já jsem si uvědomil, že ve výstupu číslice mezerami neodděluji... :(

Nahoru Odpovědět 4.12.2016 20:59
Programátor je stroj k převodu kávy na kód.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
krepsy3:4.12.2016 21:00

Priznam sa, chcel by som machra. :-)

To asi každý... :D

Nahoru Odpovědět  +1 4.12.2016 21:00
Programátor je stroj k převodu kávy na kód.
Avatar
Libor Šimo (libcosenior):5.12.2016 10:17

Do pekla, binárne operácie veľmi nepomohli, ale niečo iné áno.
Vyskúšajte toto zadanie:

"_ _ _ _ 9 _ _ _ 7",
"_ _ _ 2 _ _ 9 8 _",
"_ 4 _ 8 3 _ _ _ 1",
"_ _ _ _ _ _ 7 _ 2",
"_ _ _ _ _ _ _ 1 _",
"_ _ 1 _ 7 _ 3 _ _",
"4 _ 8 _ 1 _ _ _ 5",
"_ _ _ 9 2 _ _ 7 3",
"9 _ 2 _ _ 8 _ _ _"

Pred úpravami v kóde som mal čas 0,127 s.
Po úpravách je v prílohe. (je tam aj špecifikácia PC)

Nahoru Odpovědět 5.12.2016 10:17
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
patrik.valkovic:5.12.2016 10:21

Čím se ti to podařlo stáhnout ten čas?

Nahoru Odpovědět 5.12.2016 10:21
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Libor Šimo (libcosenior):5.12.2016 10:22

Teraz pozerám, že mi to spravilo chybu vo výpočte. :-(

Nahoru Odpovědět 5.12.2016 10:22
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na patrik.valkovic
Libor Šimo (libcosenior):5.12.2016 10:57

Zatiaľ to nemám odladené, ale skúšam 2 cykly, ktoré sa veľa krát opakujú, nahradiť priamym zadaním.
Pre pochopenie:

for (i = 0; i < 9; i++) {
        if (niečo == i + 1)
                vykonaj;
}
if (niečo == 1)
        vykonaj;
if (niečo == 2)
        vykonaj;
if (niečo == 3)
        vykonaj;
........
if (niečo == 9)
        vykonaj;
Nahoru Odpovědět 5.12.2016 10:57
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na patrik.valkovic
Libor Šimo (libcosenior):5.12.2016 11:03

Už som to opravil a aj tak sa čas trochu znížil.

Nahoru Odpovědět 5.12.2016 11:03
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
krepsy3:5.12.2016 11:15

Tak můj C# to tvoje udělal za 286 ms :D :O

Nahoru Odpovědět 5.12.2016 11:15
Programátor je stroj k převodu kávy na kód.
Avatar
krepsy3
Redaktor
Avatar
krepsy3:5.12.2016 11:19

Tak koukám že to asi nějak blbne. Zkusil jsem Liborovo Zadání několikrát:

  • - 61 ms
  • 401 ms
  • 34 ms
  • 265 ms
  • - 34 ms
  • - 63 ms

Wtf?

Editováno 5.12.2016 11:19
Nahoru Odpovědět 5.12.2016 11:19
Programátor je stroj k převodu kávy na kód.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:5.12.2016 11:20

]:-> ]:-> Někdo se vám možná podaří být rychlejší jak C

Nahoru Odpovědět 5.12.2016 11:20
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
rikenbekr:5.12.2016 11:20

A kde přesně jste využil binární operace?

Nahoru Odpovědět 5.12.2016 11:20
In world without fences and walls, who needs Gates and Windows?
Avatar
krepsy3
Redaktor
Avatar
krepsy3:5.12.2016 11:23

Tak už mi to dělá dobře - Liborovo Sudoku cca. 3154 ms :O:O

A přitom

_ _ _ _ _ _ _ 5 6
_ _ _ 2 _ 3 4 1 _
_ 3 _ _ _ 8 _ _ 9
_ _ 6 _ _ 9 _ 4 7
1 _ _ _ _ _ _ _ 3
3 8 _ 4 _ _ 9 _ _
8 _ _ 6 _ _ _ 3 _
_ 5 4 3 _ 7 _ _ _
7 9 _ _ _ _ _ _ _

tohle mi to udělá za cca. 20 ms! :O

Nahoru Odpovědět 5.12.2016 11:23
Programátor je stroj k převodu kávy na kód.
Avatar
Odpovídá na krepsy3
Luboš Běhounek (Satik):5.12.2016 11:34

Generátor náhodných čísel :D

Jinak jsem si všimnul, že moje verze se zasekne na zadání, které nemá řešení - sice jsem tuhle variantu zkoušel, ale to bylo ještě než jsem přidal backtracking - u něj jsem se zapomněl zamyslet nad zadáním, které nemá řešení.

Ještě by se mohlo zkusit, jak moc by to zrychlilo přepsat to z LINQ čistě na cykly a pole/listy.

Nahoru Odpovědět 5.12.2016 11:34
:)
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
patrik.valkovic:5.12.2016 11:42

Zkus parallel LINQ jestli to tam má někde smysl :D

Nahoru Odpovědět  +1 5.12.2016 11:42
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na rikenbekr
Libor Šimo (libcosenior):5.12.2016 11:50

Napr. na porovnanie čísiel:

(if (!(x ^ y))
        ....;
Nahoru Odpovědět 5.12.2016 11:50
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Libor Šimo (libcosenior):5.12.2016 11:52

A ešte raz k tomu môjmu zadaniu. V prílohe sú najnižšie hodnoty bez úpravy a s úpravou.

Nahoru Odpovědět 5.12.2016 11:52
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Nahoru Odpovědět 5.12.2016 12:26
In world without fences and walls, who needs Gates and Windows?
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
krepsy3:5.12.2016 12:50

On byl nějaký problém s odečítáním DateTimů pomocí mínusu, ale kámoš D0ll0k mi poradil, ať použiju DateTime.Substrac­t();, a už to fachá normálně, výsledky jsou zhruba stejné. Jinak znovu: můj stroj: Dell Inspiron 13 7000 series (2015), specs si můžete najít :D

Nahoru Odpovědět 5.12.2016 12:50
Programátor je stroj k převodu kávy na kód.
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na krepsy3
Martin Dráb:5.12.2016 15:09

Moc bych DateTime nevěřil, co se týče přesnosti, která nemusí být zrovna na milisekundy, ale může se odvíjet např. od délky časového kvanta pro plánování vláken na procesoru (což může znamenat granularitu třeba 10-16 ms). Takže to chce zprůměrovat větší množství pokusů, aby takové měření o něčem vypovídalo.

Nahoru Odpovědět  +2 5.12.2016 15:09
2 + 2 = 5 for extremely large values of 2
Avatar
homestead
Člen
Avatar
Odpovídá na Luboš Běhounek (Satik)
homestead:5.12.2016 16:09

Zadanie od Satika má strašne veľa riešení, asi za 10 min. mi to našlo 95000 riešení a to som musel prerušiť. Dobré zadanie by malo mať len jedno riešenie...

Nahoru Odpovědět 5.12.2016 16:09
Žiť a nechať žiť...
Avatar
Odpovídá na homestead
Libor Šimo (libcosenior):5.12.2016 16:14

To sme tu uz riesili. Ako vysledok staci prve funkcne riesenie. Preto je cas vypoctu taky kratky.

Nahoru Odpovědět 5.12.2016 16:14
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
homestead
Člen
Avatar
homestead:5.12.2016 16:15

libcosenior - zadanie má len jedno riešnie. Vyriešené za 0,055 sek.

Nahoru Odpovědět 5.12.2016 16:15
Žiť a nechať žiť...
Avatar
Nahoru Odpovědět 5.12.2016 16:16
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
homestead
Člen
Avatar
homestead:5.12.2016 16:18

v c #, ale algoritmus som našiel na internete a upravil...

Nahoru Odpovědět 5.12.2016 16:18
Žiť a nechať žiť...
Avatar
homestead
Člen
Avatar
Odpovídá na krepsy3
homestead:5.12.2016 16:25

krepsy3 - len jedno riešenie, 0,013 sek.

Nahoru Odpovědět 5.12.2016 16:25
Žiť a nechať žiť...
Avatar
Odpovídá na homestead
Libor Šimo (libcosenior):5.12.2016 16:45

Preco si nesutazil?

Nahoru Odpovědět 5.12.2016 16:45
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na homestead
rikenbekr:5.12.2016 17:21

Jestli myslíš to od satika tak to má mnoho řešení. Zkontroluj jestli splňují řešení jednotlivých lidí podmínky a jsou stejná.

Nahoru Odpovědět 5.12.2016 17:21
In world without fences and walls, who needs Gates and Windows?
Avatar
homestead
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
homestead:5.12.2016 17:53

nesuťažil som preto, lebo to mám z internetu... nie je to moje riešenie a nebudem sa chváliť cudzím perím

Nahoru Odpovědět 5.12.2016 17:53
Žiť a nechať žiť...
Avatar
Odpovídá na homestead
Libor Šimo (libcosenior):5.12.2016 17:58

Pravdou je, ze na vacsinu sutazi najdes riesenie na nete, ale zalezi ako to pouzijes. Skopirovat bez pochopenia je hulvatske, pochopit, upravit, vylepsit je podla mna OK.
Aby si ma spravne pochopil.
Koleso bolo vymyslene a ty uz nove nevymyslis, ale mozes ho maximalne vylepsit.

Editováno 5.12.2016 18:00
Nahoru Odpovědět 5.12.2016 17:58
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
homestead
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
homestead:5.12.2016 18:05

Áno, aj som si myslel, že sa to kopíruje, lebo vymyslieť takýto algoritmus, by som určite sám od seba nevedel. Ale na druhej strane načo vymýšlať niečo, čo je už vymyslené. Ja len závidím dnešným mladým, ktorý chodia do školy, že si všetko nájdu na nete.

Nahoru Odpovědět 5.12.2016 18:05
Žiť a nechať žiť...
Avatar
Nahoru Odpovědět  +1 5.12.2016 18:06
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
homestead
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
homestead:5.12.2016 18:07

Asi som starší od teba :), ja mám 60...

Nahoru Odpovědět 5.12.2016 18:07
Žiť a nechať žiť...
Avatar
Odpovídá na homestead
Libor Šimo (libcosenior):5.12.2016 18:10

Tak to si ma dostal. :-)

Nahoru Odpovědět 5.12.2016 18:10
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
homestead
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
homestead:5.12.2016 18:11

Až teraz som pozeral tvoj profil a tam máš 57, podľa fotky nevyzeráš..

Nahoru Odpovědět 5.12.2016 18:11
Žiť a nechať žiť...
Avatar
Odpovídá na homestead
Libor Šimo (libcosenior):5.12.2016 18:12

Vyzeram starsie, ale nevadi. Mam plan do 130 rokov. ;-)

Nahoru Odpovědět 5.12.2016 18:12
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Martin Dráb
krepsy3:5.12.2016 18:25

Moc bych DateTime nevěřil, co se týče přesnosti, která nemusí být zrovna na milisekundy, ale může se odvíjet např. od délky časového kvanta pro plánování vláken na procesoru (což může znamenat granularitu třeba 10-16 ms). Takže to chce zprůměrovat větší množství pokusů, aby takové měření o něčem vypovídalo.

Jasně, ale orientačně ti to postačí - víš jestli je to asi 10 ms, 50 ms, 200 ms nebo 2000 ms :D

Nahoru Odpovědět  +1 5.12.2016 18:25
Programátor je stroj k převodu kávy na kód.
Avatar
Libor Šimo (libcosenior):6.12.2016 7:08

Schválne som nechal spočítať koľko krát sa pri riešení volala rekurzia.

Nahoru Odpovědět 6.12.2016 7:08
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
rikenbekr:6.12.2016 7:25

Tak to to řešíte asi více hrubou silou.

Nahoru Odpovědět 6.12.2016 7:25
In world without fences and walls, who needs Gates and Windows?
Avatar
Odpovídá na rikenbekr
Libor Šimo (libcosenior):6.12.2016 7:48

Skús toto zadanie.
"_ _ _ _ 9 _ _ _ 7",
"_ _ _ 2 _ _ 9 8 _",
"_ 4 _ 8 3 _ _ _ 1",
"_ _ _ _ _ _ 7 _ 2",
"_ _ _ _ _ _ _ 1 _",
"_ _ 1 _ 7 _ 3 _ _",
"4 _ 8 _ 1 _ _ _ 5",
"_ _ _ 9 2 _ _ 7 3",
"9 _ 2 _ _ 8 _ _ _"

Nahoru Odpovědět 6.12.2016 7:48
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
rikenbekr:6.12.2016 11:03

Omlouvám se měl jsem připravená dvě zadání a upsal jsem se :).

Nahoru Odpovědět  +1 6.12.2016 11:03
In world without fences and walls, who needs Gates and Windows?
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na rikenbekr
patrik.valkovic:7.12.2016 16:22

Nemám tam rekurzi...nesnáším rekurzi :-@

Nahoru Odpovědět  +1 7.12.2016 16:22
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na patrik.valkovic
Libor Šimo (libcosenior):7.12.2016 16:34

Len vacsinou je velmi ucinna.

Nahoru Odpovědět 7.12.2016 16:34
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
patrik.valkovic:7.12.2016 16:40

No právě spíše ne. Rekurze ukládá další zbytečné informace, ještě k tomu na zásobník. Zásobník je cenější resource než halda.

Nahoru Odpovědět 7.12.2016 16:40
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na patrik.valkovic
Libor Šimo (libcosenior):7.12.2016 16:42

Asi mas pravdu, tak hlboko do toho nevidim.

Nahoru Odpovědět 7.12.2016 16:42
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
patrik.valkovic:7.12.2016 16:43

No ono ve chvíli, kdy ti spadne program protože StackOverflow (přitom se nikdy nezacyklil, ale byl napsán korektně), tak to začneš řešit :D

Nahoru Odpovědět 7.12.2016 16:43
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na patrik.valkovic
rikenbekr:7.12.2016 16:48

To je pravda, ale v tomto případě to bylo přehlednější řešení navíc paměť v řádu 100 bajtů zabraná naví není taková katastrofa.

Nahoru Odpovědět 7.12.2016 16:48
In world without fences and walls, who needs Gates and Windows?
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Zdeněk Pavlátka
patrik.valkovic:12.12.2016 9:31

Jak to vypadá s vyhodnocením? ;-)

Nahoru Odpovědět 12.12.2016 9:31
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na patrik.valkovic
Zdeněk Pavlátka:12.12.2016 9:52

bledě - hodně účastníků, málo času

Nahoru Odpovědět 12.12.2016 9:52
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):12.12.2016 20:18

Ja len dufam, ze to stIhnes do casu, aby vyherca (ci) dostali placku do Vianoc, urcite by ich to potesilo.

Nahoru Odpovědět 12.12.2016 20:18
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Zdeněk Pavlátka
rikenbekr:15.12.2016 21:01

Chápu že je to nadlouho, ale na kolik procent je to +- ohodnocené?

Nahoru Odpovědět 15.12.2016 21:01
In world without fences and walls, who needs Gates and Windows?
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na rikenbekr
Zdeněk Pavlátka:15.12.2016 21:19

cca na 5 :/ a kvúli škole se to asi nějakou dobu nezvedne

Nahoru Odpovědět 15.12.2016 21:19
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
rikenbekr
Člen
Avatar
Nahoru Odpovědět 15.12.2016 21:27
In world without fences and walls, who needs Gates and Windows?
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):25.12.2016 18:53
:-(
Editováno 25.12.2016 18:54
Nahoru Odpovědět 25.12.2016 18:53
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Zdeněk Pavlátka
rikenbekr:7. ledna 12:01

Nechci otravovat, ale pořád trvá školní vytížení?

Nahoru Odpovědět  +2 7. ledna 12:01
In world without fences and walls, who needs Gates and Windows?
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na rikenbekr
Zdeněk Pavlátka:9. ledna 9:32

Tenhle týden zápočty, od příštího pondělí zkouškové.

Nahoru Odpovědět 9. ledna 9:32
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
rikenbekr
Člen
Avatar
Odpovídá na Zdeněk Pavlátka
rikenbekr:9. ledna 10:06

Ok, díky za info. A ať vám zkouškové dobře dopadne :).

Nahoru Odpovědět 9. ledna 10:06
In world without fences and walls, who needs Gates and Windows?
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Zdeněk Pavlátka
patrik.valkovic:9. ledna 10:08

Ale notak, zase to nepřeháněj.

Nahoru Odpovědět  +1 9. ledna 10:08
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):15. ledna 19:17

Prosim o konkretny termin vyhodnotenia.
Prepac, ale uz to je skoro ako vyhodnotenie rocnej sutaze na hru.

Nahoru Odpovědět  +2 15. ledna 19:17
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Libor Šimo (libcosenior):15. ledna 19:25

Zdenku, 12 clenov caka na vyhodnotenie svojej prace PRED ROKOM.

Nahoru Odpovědět 15. ledna 19:25
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
krepsy3:15. ledna 19:49

Nevím jestli před rokem, ale z loňska rozhodně. Mezitím už jsi vyhlásil dalšího machra. Takže jestli to nestihneš, nakupí se ti toho ještě víc. PROČ???

Nahoru Odpovědět 15. ledna 19:49
Programátor je stroj k převodu kávy na kód.
Avatar
Odpovídá na krepsy3
Libor Šimo (libcosenior):15. ledna 20:01

Dalsieho machra nevyhlasil Zdenek, ale Patrik, ktory tiez sutazi (ak sa nemylim). Nevadi mi, ze organizuje sutaze. Proste ho to oslovilo.

Nahoru Odpovědět 15. ledna 20:01
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na krepsy3
Libor Šimo (libcosenior):15. ledna 20:17

Mne skor pripada ten novy macher ako dokaz, ze vyhodnotenie moze byt rychlejsie. JE to len moj nazor.

Nahoru Odpovědět  +1 15. ledna 20:17
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Jan Vargovský
Redaktor
Avatar
Jan Vargovský:24. ledna 10:25

Není nad to mít soutěž na týden a vyhodnocení na čtvrt roku :D

 
Nahoru Odpovědět  +6 24. ledna 10:25
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:26. ledna 16:45

Všem se omlouvám za tak dlouhé čekání, ale nemám teď vůbec na nic čas. Vyhodnocení soutěže očekávejte příští týden ve čtvrtek nebo pátek (2. nebo 3. 2.)

Nahoru Odpovědět 26. ledna 16:45
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
grygerek.tomas:3. února 14:00

Napětí se dá krájet ;-) Jsem zvědav, jak to dopadne.

Nahoru Odpovědět 3. února 14:00
Není proč se klanět.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na grygerek.tomas
Zdeněk Pavlátka:3. února 14:18

Pokud bych měl hodnotit jen podle výsledků automatického vyhodnocení, všichni mají 0 bodů. Někteří mají ve výstupu věci navíc, někteří naopak nemají výstup žádný...

Nahoru Odpovědět 3. února 14:18
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
grygerek.tomas:3. února 14:20

Jasně.. Já jen - když jsi napsal, že pravděpodobně bude vyhodnocení včera nebo dnes, tak alespoň u mne to napětí stoupá. :-)

Nahoru Odpovědět 3. února 14:20
Není proč se klanět.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na grygerek.tomas
Zdeněk Pavlátka:3. února 14:44

Neboj, brzy se dočkáš ;)

Nahoru Odpovědět 3. února 14:44
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:3. února 14:44

Nevím teda jestli všichni, ale ok...hlavně ať už je to vyhodnoceno.

Nahoru Odpovědět 3. února 14:44
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:4. února 1:47

Výsledky testování můžete vidět na obrázku, zde (dev-lighter) jsou vstupy použité při testování.

Pozn.: červený křížek u času je překročení limitu (10 sekund)

Editováno 4. února 1:48
Nahoru Odpovědět 4. února 1:47
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:4. února 2:49

Díky všem za účast, zde jsou výsledky:

Lukáš Křehula - 75 bodů
Správnost výstupu: 45 / 55 bodů

  • ve výstupu neměl být žádný text navíc
  • správně vyřešeno: 15 / 15

 
Rychlost: 15 / 20 bodů

  • program je celkem rychlý (v porovnání s ostatními)

 
Kód: 15 / 25 bodů

  • nějaké ty komentáře tam jsou
  • Main metoda je docela šílenost, určitě není nutné tam mít tolik vnořených bloků, zkus více používat continue

Vlado Cukalovsky - 57 bodů
Správnost výstupu: 42 / 55 bodů

  • ve výstupu neměl být žádný text navíc
  • správně vyřešeno: 14 / 15

 
Rychlost: 0 / 20 bodů

  • program je velmi pomalý (v porovnání s ostatními)

 
Kód: 15 / 25 bodů

  • vypadá celkem dobře, obsahuje nějaké ty komentáře
  • z hlediska algoritmu pomalý, zkoušení všech možností obvykle nebývá moc dobrá strategie ;)

D0ll0k - 77 bodů
Správnost výstupu: 45 / 55 bodů

  • ve výstupu neměl být žádný text navíc
  • správně vyřešeno: 15 / 15

 
Rychlost: 10 / 20 bodů

  • program je středně rychlý (v porovnání s ostatními)

 
Kód: 23 / 25 bodů

  • přehledný, vysvětlený v komentářích

Michael Škrášek - 75 bodů
Správnost výstupu: 45 / 55 bodů

  • ve výstupu neměl být žádný text navíc
  • správně vyřešeno: 15 / 15

 
Rychlost: 10 / 20 bodů

  • program je středně rychlý (v porovnání s ostatními)

 
Kód: 20 / 25 bodů

  • přehledný, komentovaný

Pozn. je sice hezké, že máš barevný výstup, titulek konzole apod., ale jaksi to nefunguje s automatickým testováním - tam totiž jaksi chybí ta konzole...

patrik.valkovic - 92 bodů
Správnost výstupu: 55 / 55 bodů

  • jsi jediný, kdo neměl ve výstupu nic navíc -> +10 bodů
  • správně vyřešeno: 15 / 15

 
Rychlost: 17 / 20 bodů

  • program je velmi rychlý (v porovnání s ostatními)

 
Kód: 20 / 25 bodů

  • přehledný, trochu komentovaný

grygerek.tomas - 70 bodů
Správnost výstupu: 45 / 55 bodů

  • ve výstupu neměl být žádný text navíc
  • správně vyřešeno: 15 / 15

 
Rychlost: 5 / 20 bodů

  • program je celkem pomalý (v porovnání s ostatními)

 
Kód: 20 / 25 bodů

  • přehledný, komentáře tam také jsou
  • pozn. interface se obvykle pojmenovává s I na začátku (IElement)

Libor Šimo (libcosenior) - 85 bodů
Správnost výstupu: 45 / 55 bodů

  • ve výstupu neměl být žádný text navíc
  • správně vyřešeno: 15 / 15

 
Rychlost: 20 / 20 bodů

  • program je velmi rychlý (v porovnání s ostatními)

 
Kód: 20 / 25 bodů

  • přehledný, pěkně komentovaný kód
  • pozn. docela by mě zajímalo, k čemu tam máš tu podmínku...
if (spusti());

Luboš Běhounek (Satik) - 80 bodů
Správnost výstupu: 45 / 55 bodů

  • ve výstupu neměl být žádný přídavný text navíc
  • správně vyřešeno: 15 / 15

 
Rychlost: 10 / 20 bodů

  • program je středně rychlý (v porovnání s ostatními)

 
Kód: 25 / 25 bodů

  • vypadá celkem dobře, jsou tam i nějaké ty komentáře
  • chválím použití unit testů

krepsy3 - 70 bodů
Správnost výstupu: 42 / 55 bodů

  • ve výstupu neměl být žádný text navíc
  • správně vyřešeno: 14 / 15

 
Rychlost: 5 / 20 bodů

  • program je celkem pomalý (v porovnání s ostatními)

 
Kód: 23 / 25 bodů

  • přehledný, vysvětlený v komentářích

rikenbekr - 82 bodů
Správnost výstupu: 45 / 55 bodů

  • ve výstupu neměl být žádný text navíc
  • správně vyřešeno: 15 / 15

 
Rychlost: 15 / 20 bodů

  • program je celkem rychlý (v porovnání s ostatními)

 
Kód: 22 / 25 bodů

  • přehledný, skvěle komentovaný

LukasMegPrask - 52 bodů
Správnost výstupu: 27 / 55 bodů

  • ve výstupu neměl být žádný text navíc
  • správně vyřešeno: 9 / 15
  • u některých vstupů ti to hází ArrayIndexOutOf­BoundsExcepti­on (do depthFirstSear­chAndFillNumbers občas předáváš pole délky 0)
  • u jiných tvůj program tvrdí, že neexistuje řešení

 
Rychlost: 5 / 20 bodů

  • program je celkem pomalý (v porovnání s ostatními)

 
Kód: 20 / 25 bodů

  • pěkně komentovaný, celkem přehledný
  • pozn. regulární výraz, kterým ověřuješ správnost vstupu, by se dal výrazně zkrátit:
"[123456789_] [123456789_] atd." -> "[1-9_]( [1-9_]){8}"

Ladislav Ondris - 30 bodů
Správnost výstupu: 0 / 55 bodů

  • ve výstupu neměl být žádný text navíc
  • máš chybu v kódu vypisujícím výstup - GetUpperBound vrací nejvyšší index, ne počet prvků!

-> vypisoval jsi čtverec 8×8 místo 9×9
 
Rychlost: 15 / 20 bodů

  • program je celkem rychlý (v porovnání s ostatními)

 
Kód: 15 / 25 bodů

  • trochu komentovaný
  • připadá mi trochu zbytečné mít pro vstup a výstup 2 extra třídy, kde v každé je 1 celkem krátká metoda...
  • podmínka typu x == true je trochu podivná...

Placku tedy získává patrik.valkovic Gratuluji :)

Nahoru Odpovědět  +3 4. února 2:49
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):4. února 8:12

Funkcia spusti() má návratovú hodnotu bool a ošetruje správnosť vstupu užívateľa. Snažil som sa spraviť kód "blbuvzdorný". :-)

    if (!kontrola_vstupneho_pola(vstup)) {
        printf("\nZarucene nespravne zadanie!\n");
        return false;
    }

bool kontrola_vstupneho_pola(char p_s[][18]) {
    int i, j;
    // kontroluje
    for (i = 0; i < 9; i++) {
        for (j = 0; j < 17; j++) {
            // ci su na spravnom mieste podtrzniky alebo cislice okrem nuly
            if ((j % 2 == 0) && !((isdigit(p_s[i][j]) && p_s[i][j] != '0') || (p_s[i][j] == '_')))
                return false;
            // ci su na spravnom mieste medzery
            if (!(j % 2 == 0) && !(p_s[i][j] == ' ')) {
                return false;
            }
        }
    }
    return true;
}

Gratulujem patrik.valkovic k získaniu placky.
Mrzí ma len, že som počítal aj s možnosťou nevyriešenia zadania (mohlo byť aj neriešiteľné)

if (vypocitaj_vsetko(sudoku, 0, 0)) {
    napln_hracie_pole_char_z_int(sudoku, vystup);
    vypis_hracie_pole_char(vystup);
    printf("\nVyriesene.\n");
}
else
    printf("\nNema riesenie!\n");

a tým som pridal k výstupu ďalší string. :-O
Keby Patrik nedostal tých 10 bodov naviac, mal by som placku ja.

Nahoru Odpovědět  -1 4. února 8:12
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Libor Šimo (libcosenior)
Zdeněk Pavlátka:4. února 10:19

Tu podmínku jsem zmínil proto, že za sebou měla prázdný příkaz.

Mrzí ma len, že som počítal aj s možnosťou nevyriešenia zadania (mohlo byť aj neriešiteľné)

Psal jsem, že "Pro každý zadaný vstup bude existovat alespoň jedno řešení.". Dokonce koukám, že to byla odpověď pro tebe ;) Jinak gratuluji k nejrychlejšímu programu :)

Nahoru Odpovědět  +2 4. února 10:19
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
Martin Dráb:4. února 10:25

[quote]
a tým som pridal k výstupu ďalší string
[/quote]

Ono je to právě někdy docela otrava, když si připravíš nádherné prostředí pro automatické spuštění úkolů, případně i nějaké to vyhodnocování výstupů a pak ti všichni do výstupu napíšou ještě něco navíc, takže to buď musíš kontrolovat ručně, nebo to po nich opravovat. Na VŠ jsme si na to museli dávat dost pozor, protože existovalo (docela reálné) nebezpečí, že nám program při takovéto chybě shodí ze stolu (pokud těch testovacích vstupů bylo víc).

Celkem se mi osvědčilo psát tyhle ladící výpisy na chybový výstup (popř. i jinam, ale na chybový je to nejjednodušší), protože automatické testy obvykle nezajímá (přesměrovávají si jen standardní a ten pak testují).

Nahoru Odpovědět  +2 4. února 10:25
2 + 2 = 5 for extremely large values of 2
Avatar
Odpovídá na Martin Dráb
Libor Šimo (libcosenior):4. února 10:40

Som absolutny samouk. Nikto ma okrem Herouta a itnetworku nic neucil.
Ale nevadi, aj tak som rad., ze som aspon druhy. Je to pokrok. :-)

Nahoru Odpovědět 4. února 10:40
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Martin Dráb
Zdeněk Pavlátka:4. února 10:47
  1. ty výpisy navíc jsem ručně upravoval v kódech
  2. chybový výstup jsem pak přesměrovával, také, některým to tam házelo výjimky
Nahoru Odpovědět  +1 4. února 10:47
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
Martin Dráb:4. února 10:51

Nemyslel jsem to jako nějakou těžkou kritiku. Ale alespoň se to pro příště naučíš. Obecně se vyplatí pořádně číst zadání (také to ještě neumím :-) ).

Nahoru Odpovědět  +3 4. února 10:51
2 + 2 = 5 for extremely large values of 2
Avatar
rikenbekr
Člen
Avatar
rikenbekr:4. února 12:53

Sláva vítězi, čest poraženým.

Nahoru Odpovědět  +1 4. února 12:53
In world without fences and walls, who needs Gates and Windows?
Avatar
Libor Šimo (libcosenior):4. února 17:35

"Pokud bych měl hodnotit jen podle výsledků automatického vyhodnocení, všichni mají 0 bodů. Někteří mají ve výstupu věci navíc, někteří naopak nemají výstup žádný..."

To znamena, ze si vynechal hodnotenie vitaza alebo sa mylim?

Nahoru Odpovědět 4. února 17:35
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Libor Šimo (libcosenior)
Zdeněk Pavlátka:4. února 18:51

Ten "žádný výstup" byla nakonec chyba vyhodnocovacího programu - u programů napsaných v C/C++ nezachytával výstup. Když jsem ale do kódu přidal breakpoint, najednou vše fungovalo :-S (Stačil na to i podmíněný breakpoint, který se nikdy ani neaktivoval :-? )

Nahoru Odpovědět 4. února 18:51
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Luboš Běhounek (Satik):4. února 22:10

Jeste by bylo super k tem rychlostem pridat jazyk :)

Nahoru Odpovědět 4. února 22:10
:)
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Zdeněk Pavlátka
patrik.valkovic:4. února 22:19

Taky jsem to řešil, podle toho co jsem zkoušel tak to bylo tí, že program neflushoval ven. Když jsem výstup přepisoval a za každý výstup dal cout.flush() tak to začalo fungovat.

Nahoru Odpovědět  +1 4. února 22:19
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na patrik.valkovic
Martin Dráb:4. února 22:36

ANo, výstup se ukládá do vyrovnávací paměti, takže pokud jej potřebuješ okamžitě, tak je asi flush nejlepší řešení.

Nahoru Odpovědět 4. února 22:36
2 + 2 = 5 for extremely large values of 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 207 zpráv z 207.