O recursiune este o construcție în care funcția se numește ea însăși. Există recurențe directe și indirecte. Se spune că o funcție este direct recursivă dacă conține o chemare la sine în corpul său. Dacă funcția numește o altă funcție, care la rândul său numește prima funcție, atunci această funcție se numește indirect recursivă.
Luați în considerare exemplele clasice de utilizare a recursului - implementarea operațiunii de ridicare la putere și calculul factorialului unui număr. Rețineți că aceste exemple sunt clasice numai din cauza confortului lor pentru a explica noțiunea de recursiune, dar ele nu dau un câștig în implementarea software-ului în comparație cu modul iterativ de rezolvare a acestor probleme.
Acest exemplu se bazează pe faptul că x y este echivalent cu x * x (y-1). În acest cod, problema de calcul 2 4 este împărțită în calculul de 2 * 2φ. Apoi 2 * 2 разби este împărțit în 2 * 2 ² și așa mai departe până când indicatorul devine zero.
Versiunea iterativă a acestui exemplu arată astfel:
În afară de faptul că acest cod este mult mai ușor de înțeles, este și mai eficient, deoarece trecerea prin buclă este ocolită de apelul funcției "mai ieftine".
Pentru un argument negativ, funcția returnează o valoare zero, deoarece factorialul unui număr negativ nu există prin definiție. Pentru un parametru zero, funcția returnează o valoare de 1, de la 0! = 1. În alte cazuri, se numește aceeași funcție cu valoarea parametrului redusă cu 1, după care rezultatul este înmulțit cu valoarea curentă a parametrului. Asta este, produsul este calculat:
Secvența apelurilor recursive se termină numai atunci când este apelat faptul (0). care duce la ultima valoare de 1 în produs, deoarece ultima expresie din care se numește funcția este 1 * fact (1 - 1).
Factorul de iterare poate fi calculat după cum urmează:
Știați că diagrama Component este o metodă de proiectare orientată pe obiecte care descrie reprezentarea fizică a sistemului. Diagrama componente vă permite să determinați arhitectura sistemului dezvoltat, stabilind dependențele dintre componente.
ȘTIRI ALE FORUMULUI
Cavalerii teoriei eterului
Despre acest lucru Kornilov a scris pe pagina sa în sotsseti.
Potrivit lui Kornilov, mesajul său a fost primit cu neîncredere.
Acum, Vladimir Kornilov a decis să se întoarcă la acest subiect, în legătură cu care se publică în fotografiile mele de pe Facebook misterioase israelienilor care au luat parte la masacrul de la Odessa.
Printre numeroasele probleme pe care Kornilov, a spus el, ar dori să primească un răspuns, de exemplu:
"De ce au mers accidental în jurul Odisei cu echipament medical, mănuși de cauciuc, de unde știau în prealabil că vor fi răniți și uciși? Sau de ce soldatul a uitat brusc limba engleză, când și-a dat seama că a fost înregistrat?
apa lacurilor, mărilor și oceanelor prin lushariya --------- nordice roti spre m Lc - p-in-k-i, iar apa din polushariya sudic - ra - conductive dizolvată -a-po-așa săgeți, -represiunea - gig-ant-ski-e-water-ovo-companii.
Principalul motiv pentru rotirea eddiilor este vântul local.
Iar cu cât este mai mare viteza vântului, cu atât este mai mare viteza de rotație a vaporilor și, în consecință, cu atât este mai mare forța centrifugă a vaporilor, crescând astfel nivelul apelor mărilor și oceanelor.
Și cu cât forța centrifugală a bazinelor este mai mică, cu atât nivelul apei și oceanelor este mai scăzut.
Viteza curenților de-a lungul perimetrului mărilor și oceanelor nu este aceeași peste tot și depinde de adâncimea coastei. În partea superficială a mării, viteza curenților crește, iar în apele adânci ale mării scade.
fluctuațiile sezoniere ale nivelului apei ceas-tsya nu în jurul valorii de coasta mărilor și oceanelor-s, dar numai în acele coaste unde -mare viteza unghiulară a fluxurilor și a forței centrifuge, prin urmare, de mare a apei. (Forța centrifugă F = v / r).
Pe coastele rectilinii, unde curenții nu au viteză unghiulară, nivelul apei nu crește.