Diskuze: Jde natrénovat rekurze?

Tvůrce

Zobrazeno 18 zpráv z 18.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
ona se hlavně učí na straně dementních příkladech.
Představ si příklad chceš přečíst všechny txt soubory na disku. Jak to uděláš?
def funkce(index, seznam):
print(seznam[index])
if index < len(seznam) - 1:
funkce(index + 1, seznam)
nebo
for i in a:
print(i)
Těch možností s cyklem je víc.
pythonu nerozumím, ale zadání bylo ať vypíšeš všechny soubory ve všech složkách, podsložkách, ....
Jo, takže abych se skamarádil s rekurzí budu hledat v dokumentaci metody okolo práce se soubory...
Jinak by to bylo něco jako
funkce(složka A)
{
cyklem projdu všechny soubory ve složce A a vypíšu jen ty .txt
pokud složka A obsahuje jiné složky, tak
funkce(složka A \\ Vnitřní složka)
}
jo, ale to by asi chodilo furt do té samé složky, takže
funkce(složka A)
{
cyklem projdu všechny soubory ve složce A a vypíšu jen ty .txt
pokud složka A obsahuje jiné složky, tak
cyklus pro každou podsložku .... funkce(složka A \\ Vnitřní složka)
}
Rekurze je strasnej parchant, taky s ni mam problemy De jen o to si uvedomit, co
predavat funkci a jak poznat kdy se ma ukoncit. Coz je vpodstate ten nekvetsi
problem
Vypis souboru je
lehkej, treba faktorial taky, ale zkus pogooglit cviceni na rekurze.
Ale ty slozky bych resil asi takhle:
vypistextaky(slozka):
seznam = ziskejVsechnoVeSlozce(slozka)
for neco in seznam:
pokud neco je .txt; vypis
pokud neco je slozka; vypistextaky(neco)
No.. Rekurze je obecně jednodušší na pochopení, než cyklus.. Jestli nevěříte, běžte se
podívat třeba na implementaci BVS (binární vyhledávací strom)..
Jo, vlastně to máme podobný. Ale Michal nerozumí Pythonu (nechápu), tak
to mám tak hnusně
Mně ta rekurze přijde strašně mocná, ale tím je i těžší na pochopení
Takový příklad:
def hanoi(kolik, odkud, pres, kam):
navod = []
if kolik > 0:
hanoi(kolik - 1, odkud, kam, pres)
print("{} > {}".format(odkud, kam))
hanoi(kolik - 1, pres, odkud, kam)
Rekurzi pochopíš, jakmile pochopíš rekurzi
V tom případě se podívej na dynamické programování, pak ti rekurze přijde jako procházka růžovým sadem.
A ne, pokud porodníci něco netají, rekurze není vrozená vada.
Je to trochu složitější, protože to chce dobré matematické základy, pak
je to hodně přirozená věc.
pardon, chtěl sem dát palec nahoru, sem na mobilu :/
Hmm, pro tyhle situace by se asi hodilo tlačítko "změnit hodnocení"
Vyskúšaj si funkcionálne(clojure, haskell...) alebo logické(prolog)
programovanie, resp. jazyky v ktorých cykly nie sú. Ja som na nich pochopil
poriadne rekurziu je to
pomerne prirodzená vec, len ako už spomínal Michal, je podávaná zlým
spôsobom.
uz se to resilo, brzo bude mozne to pri preklepu zmenit
Zobrazeno 18 zpráv z 18.