Documente Academic
Documente Profesional
Documente Cultură
Recursivitate
5.1. Prezentare general
Recursivitatea este una dintre noiunile fundamentale ale informaticii.
Def: Recursivitatea este mecanismul general de elaborare al programelor. Ea const n posibilitatea unui
subprogram de a se autoapela.
Recursivitatea a aprut din necesitatea de a transcrie direct formule matematice recursive. n timp acest
mecanism a fost extins i pentru ali algoritmi.
F ( x)
, x 12
, x 12
,m 0
Ack ( m, n)
Ack ( m 1,1)
,n 0
Ack (m 1, Ack (m, n 1)) , altfel
Un
0
,n 0
1
,n 1
U n 1 U n 2 , altfel
5.4.5.Se dau dou numere naturale a i b. Se cere s se calculeze cel mai mare divizor comun al lor.
Indicaie: se folosete formula recursiv a celui mai mare divizor comun
,a b
cmmdc( a, b) cmmdc( a b, b) , a b
cmmdc( a, b a ) , b a
5.4.6. S se scrie o funcie recursiv pentru calculul sumei cifrelor unui numr natural.
5.4.7. S se scrie o funcie recursiv care citete caractere i le afieaz n ordinea invers citirii. Sfritul
irului este marcat de caracterul 0.
5.4.8. S se scrie o funcie recursiv pentru transformarea unui numr natural n, din baza 10 n baza k
(1<k<10).
5.4.9. Se consider irurile definite recurent astfel: a0 a, b0 b; a, b 0
a bn1
an n1
, bn a n1bn1
2
S se scrie un program care s citeasc a, b i n i s calculeze a n i bn .
5.4.10. Generarea recursiv a produsului cartezian. Se citete n, numr natural, care are semnificaia de
numr de mulimi. Se citesc, de asemenea, numerele naturale n 1, n2,..., nn unde ni reprezint numrul
de elemente al mulimii Ai. Se cere s se calculeze produsul cartezian al mulimilor A1, A2, ... , An. Se
consider c elementele mulimii i sunt {1,2, ... , ni}.
Indicaie: Dac n este 1 avem o singur mulime A1. n acest caz programul afieaz elementele lui
A1 sub form de mulimi.
5.4.11. Generarea permutrilor. Se d mulimea {1,2, ... , n}. Se cer toate permutrile acestei mulimi.
5.4.12. Generarea aranjamentelor. Se citesc n i k (k<=n) numere naturale. Se consider c o mulime A are
elementele {1,2, ... , n}. Se cere s se afieze toate aranjamentele de n luate cte k.
5.4.13. Generarea recursiv a combinrilor. Se citesc n i k (k<=n) numere naturale. Se consider c o
mulime A are elementele {1,2, ... , n}. Se cere s se afieze toate submulimile sale care au k
elemente combinri de n luate cte k.
5.4.14. Generarea partiiilor unei mulimi. Se consider mulimea {1,2, ... , n}. Se cer toate partiiile acestei
mulimi.
Indicaie: Fiind dat o mulime A, submulimile A1, A2, ... , Ak constituie o partiie a acesteia dac sunt
ndeplinite condiiile:
Mulimile sunt disjuncte ntre ele (adic nici o mulime nu are nici un element comun cu nici o alt
mulime): Ai A j , i j ;
k
5.5.
A.
5.5.2. Aplicaii