Autorské riešenie
Pri riešení tejto úlohy nám pomôže obrázok s doplnenými konkrétnymi hodnotami dĺžok úsekov lomenej čiary uložených v zozname [30, 20, 40, 30, 50, 40, 30, 50].
Vidíme, že na nepárnych pozíciach zoznamu sú uvedené dĺžky vodorovných úsečiek striedavo v smeroch východ a západ. A na párnych pozíciách zoznamu sú uvedené dĺžky zvislých úsečiek striedavo v smeroch sever a juh. Výslednú x-ovú zložku koncovej pozície vypočítame ako rozdiel súčtu dĺžok úsečiek v smere východ a súčtu dĺžok v smere západ. Podobne vypočítame výslednú y-ovú koncovú pozíciu ako rozdiel súčtu dĺžok úsečiek v smere sever a súčtu dĺžok úsečiek v smere juh. Podľa výsledných hodnôt x, y doplníme zoznam o štvoricu hodnôt tak, aby neobsahoval zápornú hodnotu. Ak je výsledná pozícia dronu zároveň jeho počiatočnou pozíciou nedopĺňame do zoznamu štvoricu s nulovými hodnotami. Funkcia dopln_trasu na doplnenie trasy dronu zadanej zoznamom dĺžok úsečiek, aby sa čo najskôr dostal do svojej počiatočnej pozície, môže vyzerať napr. nasledovne: def dopln_trasu(prikazy): x = sum(prikazy[0::4]) - sum(prikazy[2::4]) y = sum(prikazy[1::4]) - sum(prikazy[3::4]) if x > 0: x_vychod, x_zapad = 0, x else: x_vychod, x_zapad = -x, 0 if y > 0: y_sever, y_juh = 0, y else: y_sever, y_juh = -y, 0 if not (x == y == 0): prikazy.extend([x_vychod, y_sever, x_zapad, y_juh]) return prikazy print(dopln_trasu([30, 20, 40, 30, 50, 40, 30, 50])) Táto úloha je zameraná na:
Vaše zaujímavé riešenia a najčastejšie chyby Do riešenia úlohy sa zapojilo 10 tímov z kategórie EXPERT. Plný počet bodov bodov nezískal žiaden tím. Najbližšie k tomu mali tímy karborura a mackybetter, ktorí podobne ako ostatní riešitelia neošetrili zbytočné pripojenie zoznamu 4 núl na koniec zoznamu v prípade ak koncová pozícia sa rovná počiatočnej pozícii. V riešeniach sme zaregistrovali nasledovné nedostatky, vychádzajúce najčastejšie z nedôslednej analýzy problému:
|
||||||||||
|
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |
||||||||||