Algoritmid ja rekursioon
Enne alustamist11. klass · raskus 4/5
Mõiste
Algoritm on täpne sammude jada probleemi lahendamiseks. Rekursioon tähendab, et objekt või arvutus määratletakse eelmiste väärtuste kaudu.
Hea algoritm kirjeldab:
- sisendit: millised andmed antakse;
- samme: mida nendega tehakse;
- väljundit: mis tulemus saadakse;
- lõpetamistingimust: millal töö lõpeb.
Valemid ja tingimused
Fibonacci jada:
$$F_1=1,\qquad F_2=1,$$
$$F_n=F_{n-1}+F_{n-2}.$$
Siin on peatustingimused $F_1=1$ ja $F_2=1$. Ilma nendeta ei teaks, kust arvutamist alustada.
Rekursioonis peab iga samm liikuma lihtsama juhu poole: $F_6$ vajab $F_5$ ja $F_4$, need vajavad veel varasemaid liikmeid, kuni jõutakse väärtusteni $F_1$ ja $F_2$.
Näide
Leia $F_6$.
Alustame teadaolevatest algväärtustest:
$$F_1=1,\quad F_2=1.$$
Seejärel kasutame reeglit $F_n=F_{n-1}+F_{n-2}$:
$$F_3=F_2+F_1=1+1=2,$$
$$F_4=F_3+F_2=2+1=3,$$
$$F_5=F_4+F_3=3+2=5,$$
$$F_6=F_5+F_4=5+3=8.$$
Võimalikud eksimused
Rekursiivsel kirjeldusel peab olema algväärtus. Muidu ei saa arvutust alustada.
Teine tüüpviga on kirjutada rekursioon nii, et see ei liigu peatustingimuse poole. Näiteks kui $F(n)$ kutsub uuesti $F(n)$, ei muutu ülesanne väiksemaks ja arvutus ei lõpe.
Seosed
Algoritmid seovad matemaatika informaatika, tõestuste, jadade ja modelleerimisega. Järgmine modelleerimise plokk kasutab sama mõtet: päris olukord tuleb muuta selgete sisendite, reeglite ja väljundiga matemaatiliseks mudeliks.