Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Suite fibonacci

Posté par
Booglie56
04-10-15 à 16:27

Bonjour, je dois compléter cet algorithme mais je ne comprends pas tout..

Compléter le script suivant de sorte que soit affiché  le terme de rang n de la suite (un) définie par un+2 = 2un+1 + 4un      u0 = u1 = 1

Le voici :

def FIBO(n):
  b,c = ...
  for k in range (n):
    b,c = ...
  return....

Je ne vois pas ce que l'on entend par b et c...
Pour la dernière ligne j'avais pensé à : return (4*FIBO(n)+2*FIBO(n+1))

Merci

Posté par
Booglie56
Fonction récursive 04-10-15 à 16:45

Bonjour, je n'arrive pas à compléter cet algorithme, pouvez-vous m'aider ? Merci d'avance.
J'ai déjà complété la 3° ligne

** image supprimée **

*** message déplacé ***

Posté par
scoatarin
re : Suite fibonacci 05-10-15 à 16:34

Bonjour,

Je crois que b et c désignent deux nombres successifs de la suite de Fibonacci.  

Posté par
Booglie56
re : Suite fibonacci 05-10-15 à 17:02

Ils désignent donc u0 et u1 ?
b,c = 1,1

Et pourquoi la 4° ligne ?

Posté par
scoatarin
re : Suite fibonacci 05-10-15 à 17:30

La 4ième ligne désigne sans doute tous les couples de deux nombres successifs de la suite de Fibonnacci
quand le rang de la suite est incrémenté de 1 à n.    

Posté par
Booglie56
re : Suite fibonacci 05-10-15 à 17:32

J'ai l'impression que j'ai déjà écrit ceci dans la dernière ligne..

Posté par
scoatarin
re : Suite fibonacci 05-10-15 à 17:41

Tout dépend de ce que signifie FIBO(n).

Le sais-tu ? moi non.

Posté par
Booglie56
re : Suite fibonacci 05-10-15 à 17:52

J'ai écrit la consigne plus haut, je n'en sais pas davantage...

Posté par
scoatarin
re : Suite fibonacci 05-10-15 à 19:43

désolé, dans ce cas, je ne peux pas t'aider d'avantage.

Si quelqu'un a une idée, elle est la bienvenue !

Posté par
mathafou Moderateur
re : Suite fibonacci 05-10-15 à 21:39

Bonjour,

pour calculer les termes d'une suite il y a deux méthodes différentes et sans rapport direct

ou bien on fait une boucle

ou bien on utilise un sous programme récursif qui s'appelle lui-même

en écrivant dans le programme FIBO() un appel à FIBO lui même (ta proposition) ce n'est pas calculer avec une boucle, c'est écrire un programme récursif (qui s'appelle lui même) et en plus faux.


or le programme proposé exhibe bien une boucle
et la réponse c'est : dans la boucle on calcule le terme suivant

b c'est uk et c c'est uk-1, à tout instant
au début b = u1 = 1 et c = u0 = 1
et dans la boucle où on calcule le nouveau b à partir des valeurs actuelles de b et de c et la valeur de c est l'ancienne valeur de b
donc on remplace les valeurs de (b,c) = (uk, uk-1) par (b, c) = (uk+1;, uk), par cette opération d'affectation simple (sans aucun appel à FIBO elle même, quelle anerie !!!

l'écriture "sous forme de paire de valeurs" considère qu'on modifie simultanément b et c
sinon il faudrait une variable temporaire pour ne pas détruire l'ancienne valeur de b


nota : ce n'est pas une suite de Fibonacci qui est exclusivement un+2 = 2un+1 + 4un, u0 = 1, u1 = 1
mais une récurrence du second ordre un+2 = pun+1 + qun, u0 et u1 = ce qu'on veut.

la suite de Fibonacci est un cas particulier de récurrence du second ordre (p = q = u0 = u1 = 1

voir ton autre exo aussi (en espérant que ça ne soit pas en fait du multipost = le même exo)

Posté par
mathafou Moderateur
re : Fonction récursive 05-10-15 à 21:43

Bonjour,

si c'est le même que l'autre c'était du multipost

donc il s'agirait peut être de faire la même chose mais avec un programme récursif qui s'appelle lui-même au lieu d'une boucle "pour"
donc un programme FIBO() qui contient un appel à FIBO() lui même
comme de toute façon ton énoncé ici dans ce topic a disparu ..
(il doit être recopié, pas photographié)

*** message déplacé ***

Posté par
mathafou Moderateur
re : Suite fibonacci 05-10-15 à 22:26

*edit : ...suite de Fibonacci qui est exclusivement un+2 = un+1 + un, u0 = 1, u1 = 1

(copier-coller-modifier avec oubli du "modifier")

Répondre à ce sujet

Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster :

Connexion / Inscription Poster un nouveau sujet
Une question ?
Besoin d'aide ?
(Gratuit)
Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.


Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !