|
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
|
|