Algorithmique suite de Fibonacci

Discutez d'informatique ici !
Emma-Cohen
Messages: 3
Enregistré le: 14 Oct 2012, 20:59

Algorithmique suite de Fibonacci

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.



Avatar de l’utilisateur
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 ?

Avatar de l’utilisateur
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()...

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite