Oslav s námi vysvědčení a získej 90 % extra kreditů ZDARMA při nákupu od 1199 kreditů. Použij promo kód VYSVEDCENI90 pouze dnes!
NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Soutěž: 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 Valkovič 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í
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
Avatar
Dominik Chrastek:2.12.2016 22:48

Prolog?

 
Odpovědět
2.12.2016 22:48
Avatar
krepsy3
Tvůrce
Avatar
Odpovídá na Jan Lupčík
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
2.12.2016 22:49
Programátor je stroj k převodu kávy na kód.
Avatar
Nahoru Odpovědět
2.12.2016 23:16
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Dominik Chrastek
Patrik Valkovič: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
3.12.2016 5:30
In world without fences and walls, who needs Gates and Windows?
Avatar
krepsy3
Tvůrce
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
Tvůrce
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
Tvůrce
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
3.12.2016 9:17
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na krepsy3
Patrik Valkovič: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
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 Valkovič
Libor Šimo (libcosenior):3.12.2016 11:44

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

Nahoru Odpovědět
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
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
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
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.12.2016 14:28
In world without fences and walls, who needs Gates and Windows?
Avatar
Patrik Valkovič:3.12.2016 16:21

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

Nahoru Odpovědět
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 Valkovič
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
Tvůrce
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
Tvůrce
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
Tvůrce
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
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
Tvůrce
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
Tvůrce
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
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 Valkovič: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
Tvůrce
Avatar
Odpovídá na Patrik Valkovič
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 Valkovič
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
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Zdeněk Pavlátka:3.12.2016 18:03

chybí ti tam řádek ;)

Nahoru Odpovědět
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
3.12.2016 18:04
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Zdeněk Pavlátka
Luboš Běhounek Satik:3.12.2016 18:06

Ten je uplne prazdnej :)

Nahoru Odpovědět
3.12.2016 18:06
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Patrik Valkovič: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 Valkovič
Luboš Běhounek Satik:3.12.2016 18:09

zkus tohle, ciste ze zvedavosti :)

Nahoru Odpovědět
3.12.2016 18:09
https://www.facebook.com/peasantsandcastles/
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
https://www.facebook.com/peasantsandcastles/
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
Odpovídá na Luboš Běhounek Satik
Patrik Valkovič: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 Valkovič: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.
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 50 zpráv z 207.