Úkol se stringy - obtížnost nicmoc / 10
Napište prográmek, který rozluští tuto jednoduchou "šifru":
veta = "09I03M07A16N05 02A14H08D12Y01M15O06R10 04E11P13T"
Nápověda:
veta = "04J01A02H03O" ... ... ... veta2 = "AHOJ" # výsledek
Jsou 4 kategorie řešení:
- obyčejné = vyhrává nejelegantnější, nejnázornější řešení
- oneliner = vyhrává nejkratší řešení bez importu
- oneliner import = vyhrává nejkratší řešení s import
- extravagantní = vyhrává nejbláznivější, nejvýstřednější řešení
Pravidla pro všechny:
- jeden řešitel může zaslat do každé kategorie jedno řešení. Počítá se to poslední zaslané (pokud tedy něco nezvorám...).
- případné dotazy a nápověda zde v Poradně nebo foru.
- neposílat do konference řešení ani částečná! Naznačovat/napovídat se může.
- na začátku musí být veta="....."
- algoritmus musí fungovat i pro jinou větu sestavenou na stejných základech.
- řešení zasílejte na geon@programujte.com s předmětem "PyHlavolam? 01" jako přílohu (pěkně pojmenované= nick nebo jméno a kategorie)
- pravidla se mohou změnit
Oneliners pravidla:
- vaše oneline musí začínat print .....(zde bude algoritmus)
- zaslaný program může obsahovat i další řádky (#!/usr/..., komentáře)
- středníky nejsou povoleny
- hodnotí se funkčnost a 'čistá'' velikost algoritmu: print "tady-je-uzivateluv-kod-jehoz-delku-pocitame"
Oneliners import pravidla:
- platí oneliners pravidla
- musí obsahovat import xxx (pouze v tomto tvaru, tedy ne from xxx import yyy)
- moduly jen ze standardní distribuce
Tak cca za 1 měsíc (~14.července 2005) zveřejníme v zde a ve foru výsledky.
Je to jen hra, nic není závazné, vše je ve vývoji. To co zůstává je vaše zkušenost, vaše změna, vaše vědomí o svých schopnostech. Držím palce!
Hlásí se někdo do poroty?
Kdo zaslal řešení
Čísla označují časové pořadí zaslání řešení, ne výsledkovou listinu. Ta je níže:
1. Tomix 2. Raziel 3. pepr 4. ViNiL 5. Viktor Lacina 6. David Michal 7. tdc - oneline 8. Viktor Lacina - oneline 9. Radim Novotny - oneline 10. pepr - oneline 11. azurIt 12. lachtan 13. lachtan - oneline 14. Robert Cimrman - oneline 15. Petr Mach 16. asdf - oneline 17. azurIt - extra 18. EHP - oneline 19. Jan Novák - oneline 20. JP - oneline 21. Marek Blaha - oneline 22. Fuky - extra 23. Fuky 24. Petr Mach - extra 25. gliderok 26. gliderok - oneline import 27. gliderok - extra 28. slacker - oneline 29. pepr - oneline import 30. tdc - oneline import 31. Jan Novák - oneline import 32. slacker - oneline import 33. gliderok - oneline 34. BrutUs 35. Scherry
Výsledky
Pro nedočkavé
Všechna řešení jsou na http://geon.wz.cz/pyhlavolam01/ . Vítězové níže.
Hodnocení
Protože se do poroty nikdo nepřihlásil hodnotil jsem sám. Kategorie oneline i oneline import objektivně, ostatní dvě subjektivně. Bude-li někdo chtít, může stvořit na webu hlasování, aby mohl každý vyjádřit svůj názor na řešení. Já bych to pak jen dal na web k výsledkům.
Celkem bylo zasláno 35 řešení, z toho jedno neprošlo sítem zadání (viz níže) a u jednoho byla udělána vyjímka (použito code= místo veta=). Odhaduji, že podobný byl počet neúspěšných (čti nezaslaných, protože nezvládnutých) řešení a když trochu přihodím :-), tak se soutěže zůčastnilo cca 100 řešitelů.
Oneline a oneline import
Posouzení těchto kategorií bylo přísně objektivní. Díky peprovi za script, který všechny tyto řešení projel, zkontroloval správnost zadání a vyzkoušel algoritmus na 100 náhodných řetězcích.
Obyčejné a extravagantní
Posuzování těchto kategorií bylo subjektivní. Prorota :-) vyzkoušela řešení navíc na jednom řetězci veta="20O21S08E01H03Z24I04K02E09 17E15 06 12P05Y19 11E23L14I16N26Y13S18Z25V10L22K07J". Vyloučeno bylo tímto způsobem 1 řešení.
V kategorii obyčejné vyhrálo to řešení, které se mi zdálo, že když se na to podívá někdo, kdo nikdy Python neviděl, že má velkou šanci na pochopení.
V kategorii extra porota zvolila to řešení, které svého času, rozpoutalo bouřlivou diskuzi v konferenci.
Pro šťouraly
Já jsem se nezůčastnil ;-) . Řešení jsem si dovolil dát na svůj web, protože mi to přišlo nejpohodlnější. Nečiním si na ně nijaký nárok a mohou být kamkoliv přesunuty.
Poděkování
Díky Tomixi, za skvělý nápad, za trefu do černého. Díky Petře, za vyhodnocovací script. Ušetřilo mi to spousty práce a zase jsem se něco přiučil ;-).
Vítězové
Ještě jsem zde měnil pravidla - vítězů může být několik, nezáleží na datumu zaslání
Obyčejné: Petr Mach
Oneline: 65: asd a Jan Novák
Oneline import: 45: Jan Novák, Slacker a Viktor Lacina
Extravagantní: azurit
Závěr
geon. Bylo mi potěšením, pánové ;-). Těším se na druhou rundu - má někdo nápad na Hlavolam02?