Secvenţa numerelor Fibonacci a fost stabiltă în anul 1202. Cartea lui
Fibonacci „Liber Abbacus”(Cartea despre abac) conţinea următorul exerciţiu: 1. Cîte perechi de iepuri vor apărea dintr-o singură pereche timp de un an? Pentru a soluţiona problema s-a propus să considerăm, că fiecare pereche produce o nouă pereche de iepuri în fiecare lună, fiecare pereche nouă devine fertilă la vîrsta de o lună şi în plus, că iepurii nu mor nici odată. După o lună vor exista 2 perechi, după două luni 3 perechi, în luna următoare perechea iniţială şi perechea născută în prima lună vor aduce pe lume cîte o nouă pereche şi vor fi în total 5 ş.a.m.d. Programul Turbo Pascal care rezolvă această problmă este: Program p1; Var A,B,C,i,n:integer; Begin Writeln(’Introdu nr. de luni:’); Readln(n); A:=1;B:=1;C:=1;i:=1; Writeln(’Numarul de iepuri timp de’ ‚n,’luni’,C); While i<n+1 do begin C:=A+B; A:=B;B:=C;i:=i+1;end; Readln; End. Ctrl/FDupă execuţia programului vom avea: Introdu nr. de luni: 12 Numarul de iepuri timp 1 luni este:1 Numarul de iepuri timp 2 luni este:2 Numarul de iepuri timp 3 luni este:3 Numarul de iepuri timp 4 luni este:5 Numarul de iepuri timp 5 luni este:8 Numarul de iepuri timp 6 luni este:13 Numarul de iepuri timp 7 luni este:21 Numarul de iepuri timp 8 luni este:34 Numarul de iepuri timp 9 luni este:55 Numarul de iepuri timp 10 luni este:89 Numarul de iepuri timp 11 luni este:144 Numarul de iepuri timp 12 luni este:233 Numarul de iepuri timp 13 luni este:377 După un an vom avea 377 perechi de iepuri. Șirul lui Fibonacci, deși neinteresant la prima vedere, este o problemă interesantă când vine vorba de a fi pusă într-un algoritm. Nu că ar fi dificilă. 2. Se dă un număr natural m. Să se elaboreze programul care determină cel mai mare număr din şirul Fibonacci ce nu depăşeşte acect număr. Program p2; Var A,B,C,i,m:integer; Begin Writeln(’Introdu numarul:’); Readln(m); A:=1;B:=1;C:=1;i:=2; Writeln(’Numarul numarul:’ ); While C<m do begin C:=A+B; A:=B;B:=C;i:=i+1;end; Readln; End. Ctrl/F9 În rezultaul execuţiei vom avea: Introdu numarul: 1000 Numarul este:987
3. De elaborat programul care calculează suma primelor 15 numere
ale şirului Fibonacci, fără a utiliza vre-un tablou. Program p3; Var A,B,C,i,,S,m:integer; Begin Writeln(’Introdu numarul:’); Readln(m); A:=1;B:=1;C:=1;i:=2;S:=2; Writeln(’Suma este:’ ); While i<m+1 do begin C:=A+B;S:=s+C; A:=B;B:=C;i:=i+1;end; Readln; End. Ctrl/F9 În rezultaul execuţiei vom avea: Introdu numarul: 15 Suma este:2 Suma este:4 Suma este:7 Suma este:12 Suma este:20 Suma este:33 Suma este:54 Suma este:88 Suma este:143 Suma este:232 Suma este:376 Suma este:609 Suma este:986 Suma este:1596 Suma este:2583
4. De elaborat algoritmul de calcul al numărui Fibonacci cu numărul
de ordine n, n un număr natural(forma recursivă). Program P4; Var n:integer; Function fib(n:integer):integer; Begin If (n=1)or(n=2) then fib:=1 else fib:=fib(n-1)+fib(n-2); End; Begin Write(‚Introdu numarul:’); Readln(n); Writeln(‚Numarul Fibonacci este:’,fib(n)); Readln; End. Ctrl/F9 După execuţia prorgamului vom avea: Introdu numărul: 10 Numarul Fibonacci este:55.
Bibliografie 1. Gh.Bostan „Culegere de probleme de informatică”, Ed. Lumina, Chişinău, 1996 2.