|
La crescita della popolazione di conigli... Sinteticamente, il problema è il seguente: con le ipotesi
calcolare il numero di conigli dopo x mesi. SoluzioneIn pratica, se A, B, C ... sono i nomi delle coppie di conigli, risulta
Ogni mese compaiono i conigli presenti il mese precedente più i figli dei conigli presenti due mesi prima. Al 5° mese le coppie di conigli presenti sono A, B, C, D, E, quindi il numero di conigli è 2*5=10. E dopo x mesi? Soluzione ricorsivaFib(n)=1 n=1 EsempioCon N=5: Fib(5) = Fib(4)+Fib(3)
= [Fib(3)+Fib(2)]+[Fib(2)+Fib(1)]
= [Fib(2)+Fib(1)]+1+1+1
= 1+1+1+1+1
= 5 coppie
Codificafunction FiboRic(N: LongInt): LongInt;
begin
if(N <= 2) then
FiboRic:=1
else
FiboRic:=FiboRic(N-1)+FiboRic(N-2);
end;
Soluzione iterativaA partire dai valori noti si calcola, mese per mese, finché non si giunge al mese richiesto EsempioCon N=5: Fib(1) = 1 Fib(2) = 1 Fib(3) = Fib(2)+Fib(1) = 1+1 = 2 Fib(4) = Fib(3)+Fib(2) = 2+1 = 3 Fib(5) = Fib(4)+Fib(3) = 3+2 = 5 coppie Codificafunction FiboIter(N: Integer): LongInt;
Var
I, A, B, C: LongInt;
begin
if(N <= 2) then
FiboIter:=1
else
begin
A:=1;
B:=1;
for I:=3 to N do
begin
C:=A+B;
A:=B;
B:=C;
end;
FiboIter:=C;
end;
end;
Collegamenti
Bibliografia
|
|