Da funzione ricorsiva a funzione normale

gygabyte017
Ciao a tutti, alla fine di un esercizio mi ritrovo a convertire la funzione:
$f(n)=f(n-1)+f(n-2)+f(n-3)$
che è scritta in modo ricorsivo, ad una funzione f(n) che non utilizzi se stessa nella definiziore.... Come si può fare? Che metodo si usa?

Grazie

Risposte
_Tipper
Che io sappia non c'è una regola fissa... Prova a scrivere i primi termini, magari riesci a capire da lì la relazione che li lega...

Eredir
Per risolvere le ricorrenze lineari c'è un metodo generale che puoi trovare qui.
In ogni caso per risolvere questa direi che ti servono delle condizioni iniziali.

gygabyte017
Ah si pardon! Le condizioni iniziali sono $F_1=1 \quad F_2=1 \quad F_3=2$
I primi termini sono $1" "1" "2" "4" "7" "13" "24" "44" "...$

Eredir
In ogni caso questa non è una funzione ricorsiva semplice... Guarda qui per varie soluzioni.

gygabyte017
Fantastico! :-D :-D
Ma non penso che è quello che voleva farci fare il prof... a questo punto ho sbagliato io l'esercizio!

"Esercizio":
Nell'anno zero nasce un alieno, che ogni anno esatto si sdoppia, e ogni 3 anni e 1 giorno muore. Mostrare che se $"anni">2007$,nel secondo giorno dell'anno il numero totale di alieni è strettamente minore di $"anni"!$


che è simile a quello dei conigli per Fibonacci...

Io ho fatto una tabella per vedere come evolve la popolazione:
TEMPO - NATI/MORTI - TOT
0y      -    +1     -     1
1y      -    +1     -     2
2y      -    +2     -     4
3y      -    +4     -     8
3y+1g   -    -1      -     7
4y      -    +7     -     14
4y+1g   -    -1      -     13
5y      -    +13   -     26
5y+1g   -    -2      -     24


ecc, da cui si vede che a ogni $n"y"+"1g"$ la pop totale segue la successione 1 1 2 4 7 13 24, che analizzandola, ho scoperto che è data dalla somma dei 3 numeri precedenti.
Ora per sapere quanto vale la $f_(2007)$ mi devo calcolare per forza la funzione lineare, ma a questo punto ci deve essere un altro metodo!

Quale potrebbe essere????

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.