Fibonacci

gaby10 Messages postés 460 Statut Membre -  
smellems Messages postés 135 Statut Membre -
Salut à tous,
Quelqu'un a -t-il vu cet exercice quelque part? Aide -moi s'il vous plait.
1- Soit la suite Vn définie de la façon suivante:

		V0= (1,1); V1= (1,2);  Pour tout n>1  Vn= (Un, Un+1)  où (Un) est la suite de Fibonacci.
Exprimer Vn+1 en fonction de Vn. On pourra utiliser les fonctions de projections premiers et second  qui à partir de (x, y) renvoient respectivement x ou y.

2- On cherche une nouvelle fonction qui calcule la suite de Fibonacci  mais où, pendant le calcul de la valeur de cette suite pour un entier N, la fonction n'est appelée qu'une seule fois sur chacune des valeurs inférieures à N. En particulier. Si (Un) est la suite de Fibonacci, pour le calcul de Un, il est inutile de calculer Un-1. Donc il est intéressant de pouvoir conserver certaines valeurs, au lieu de les recalculer. Pour cela, on commencera par écrire une fonction FibboAux qui à partir d'un entier n calcule la valeur de la suite Vn.

3- En déduire une fonction qui calcule la suite de Fibonacci en ne calculant chacun des termes de la suite 
qu'une seule fois. 
Merci de votre bonne comprehension

3 réponses

ghiz
 
pour la première question:
la suite de fibonacci est caractérisée par :
U1=U2=1
Un+2=Un+Un+1
donc pour écrire Vn+1 en fonction de Vn il suffit de faire:
Vn+1=(Pr1(Vn),Pr1(Vn)+Pr2(Vn)) qlq soit n>=1
où Pr1 est la première projection et Pr2 est la deuxième projection
0
ghiz Messages postés 39 Statut Membre 18
 
salut,
pour la deuxième question
fonction fibboaux(n :entier)
début
si (n=0)
alors V0=(1,1)
sinon
pour i allant de 1 à n faire
Vi=(Pr2(Vi),Pr1(Vi)+Pr2(Vi))
fin pour
retourner (Vn)
fin
0
smellems Messages postés 135 Statut Membre 46
 
WAH!

désolé ghiz mais je ne comprend pas...

juste pour résumer..

la suite de Fibonacci:

F(n) = 0 si n=0
F(n) = 1 si n=1
F(n) = F(n-1) + F(n-2)

je sais pas si ce que tu cherche, c'est la fonction résursive...? mais je vais essayer... (tu peux surement la trouver sur internet aussi)
function F(int n)
{
    if(n==0)
    {
        return 0;
    }
    if(n==1)
    {
        return 1;
    }
    return F(n-1) + F(n-2);
}

je ne suis pas certain mais je crois que c'est bon....

bonne chance
0