Smučarski skoki
V tej domači nalogi boste uporabljali numpy. Vsaka funkcija bo napisana po tem vzorcu:
def ime_funkcije(...):
return ...
Torej: funkcija dobi argumente (vse razen ene pravzaprav le enega) in vsebuje samo return, ki izračuna in vrne, kar je treba. Zato ker delamo z numpy, tako kot smo delali na predavanjih.
Tokrat tudi ne smete pisati nobenih dodatnih funkcij -- testi bodo preverili, da je res tako.
V funkcije ne dodajajte testnih printov in podobnih reči. Torej: lahko, med delom, potem pa jih pobrišite, sicer bodo testi padli.
Naloge
Naloge bodo iz analize smučarskih skokov. Vse funkcije bodo kot argument dobile numpyjevo tabelo (array) z dolžinami skokov. Ena funkcija (stevilo_zmag) bo dobila dve tabeli. Napišite naslednje funkcije:
stevilo_nadpovprecnih(skoki)vrne število skokov, ki so daljši od povprečne dolžine skoka.stevilo_nadpovprecnih(np.array([200, 100, 110, 210, 212, 215]))vrne 4, ker so štirje skoki (200, 210, 212, 215) daljši od povprečja (174.5).nadpovprecni_skoki(skoki)vrne tabelo dolžin nadpovprečnih skokov.nadpovprecni_skoki(np.array([200, 100, 110, 210, 212, 215]))vrnenp.array([200, 210, 212, 215]).povprecje_nadpovprecnih(skoki)vrne povprečno dolžino nadpovprečnih skokov.povprecje_nadpovprecnih(np.array([200, 100, 110, 210, 212, 215]))vrne 209.25, ker je povprečje skokov (200, 210, 212, 215) enako 209.25.stevilo_zmag(skoki, drugi)primerja dva tekmovalca, katerih skoki so podani v tabelahskokiindrugi. Vrne število skokov, kjer je prvi tekmovalec skočil dlje od drugega. Primerjamo istoležne skoke (prvi skok prvega tekmovalca z prvim skokom drugega tekmovalca, drugi z drugim itd.).stevilo_zmag(np.array([200, 100, 110, 210, 212, 215]), np.array([190, 120, 130, 200, 220, 210]))vrne 4, ker je prvi tekmovalec skočil dlje v skokih prvem in v zadnjih treh skokih.
vedno_boljsi(skoki)vrneTrue, če je vsak naslednji skok daljši od prejšnjega, sicerFalse.vedno_boljsi(np.array([100, 150, 200, 250]))vrneTrue, ker je vsak naslednji skok daljši od prejšnjega.vedno_boljsi(np.array([100, 150, 150, 250]))vrneFalse, ker drugi in tretji skok nista v naraščajočem vrstnem redu.vedno_boljsi(np.array([100, 80, 150]))vrneFalse, ker je drugi skok krajši od prvega.naj_skoki(skoki)vrne zaporedne številke najdaljših skokov.naj_skoki(np.array([100, 200, 150, 200, 50]))vrnenp.array([1, 3]), ker sta najdaljša 2. in 4. skok (oba sta dolga 200 m).Tale je malo bolj zanimiva (nič težkega, samo malo morate pomisliti):
ocena(skoki)vrne oceno, ki jo izračunamo tako, da izločimo najkrajši in najdaljši skok ter izračunamo povprečno dolžino ostalih. (Nasvet: pri tem nisem uporabil funkcijemean, pa tudi urejal nisem.)ocena(np.array([100, 200, 150, 300, 250]))vrne 200, ker je povprečje skokov (200, 150, 250) enako 200.
Testi
- 10. december 2025, 20:22