Algorithmique suite de Fibonacci
Discutez d'informatique ici !
-
Emma-Cohen
- Messages: 3
- Enregistré le: 14 Oct 2012, 20:59
-
par Emma-Cohen » 14 Oct 2012, 21:29
Bonjour à tous,
La semaine dernière en cours d'informatique (Première année MPSI) on m'a demandé d'écrire une fonction Fibonacci telle que l'appel à Fibonacci(p) rende la liste décroissante des p premiers termes de la suite (un).
J'ai supposé un résultat du genre Fibonacci(4) -> {5,3,2,1}
J'ai recopié mon algorithme sur une feuille de papier pour vous le présenter et savoir ce que vous en pensez...
Fibonacci := fonction (p)
var loc res ;
res <- (2,1) ;
tant que res[1] + res[2] ;) p faire
res <- préajout(res[1] + res[2], res)
fait ;
res finfonct
En gros je me suis décidée à initialiser res à (2,1) et de lui pré-ajouter la somme de ses deux premiers termes tant qu'on ne dépasse pas p.
J'aimerai savoir si pour vous ça tient la route, ou pas...
Merci d'avance.
-
fatal_error
- Membre Légendaire
- Messages: 6610
- Enregistré le: 22 Nov 2007, 12:00
-
par fatal_error » 14 Oct 2012, 21:44
salut,
c'est presque good.
on te demande les p premiers termes ca n'a rien à voir avec la valeur de res. Genre si tu listes les termes t'as
1 2 3 5 8 13
si on te dit p=6, il faut que tu listes 1 2 3 5 8 13 (en vrai 13 8 5 3 2 1) (et non pas que tu t'arretes à 1 2 3 5 parce que 8 est plus grand que 6)
tu devrais donc plutot tester la taille de res.
Sinon l'idée de préajouter est astucieuse. :++:
la vie est une fête

-
LeJeu
- Membre Irrationnel
- Messages: 1142
- Enregistré le: 24 Jan 2010, 21:52
-
par LeJeu » 14 Oct 2012, 21:45
Emma-Cohen a écrit:Fibonacci := fonction (p)
var loc res ;
res <- (2,1) ;
tant que res[1] + res[2]

p faire
res <- préajout(res[1] + res[2], res)
fait ;
res finfonct
Bonsoir,
ca me semble bizarre tout ça ... on ne voit pas bien dans ton algo pourquoi ca n'affichera que p valeurs ?
ps - sinon je ne connais pas "préajout()" : ca fait quoi ?
-
fatal_error
- Membre Légendaire
- Messages: 6610
- Enregistré le: 22 Nov 2007, 12:00
-
par fatal_error » 14 Oct 2012, 21:47
je présume que préajout ajoute en tete de liste la valeur à ajouter
L=8->5->3->2->1
préajout(13, L) donne 13->8->5->3->2->1
la vie est une fête

-
Emma-Cohen
- Messages: 3
- Enregistré le: 14 Oct 2012, 20:59
-
par Emma-Cohen » 14 Oct 2012, 21:47
D'accord, mince alors, j'aurais pas tous les points du coup...
Edit : Oui, c'est ça, la fonction préajout()...
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités