begin process at 2008 07 20 12:09:22
1 213 212 membres
129 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Suite de Fibonacci [ Algorithme / Maths ] (Shakan972)

Suite de Fibonacci le 25/03/2007 15:46:18

Shakan972
Bonjour tout le monde je suis en train d'élaborer un programme qui simule une suite de Fibonacci et quand j'execute le programme il m'affiche des résultats négatifs à partir du 60e terme par là ,est-ce normal ?

Je ne pense pas donc j'aimerais bien si possible avoir une astuce pour outre passer ce problème :)

Merçi d'avance pour votre aide.

Re : Suite de Fibonacci le 25/03/2007 15:50:55

Joky
Membre Club
En effet c'est pas normal :)
faut savoir qu'avec certain type de variable (int, float, double), les valeurs sont limitées.

Tu dois certainement utilisé un type de variable pas assez fort.

#include


Re : Suite de Fibonacci le 25/03/2007 16:10:49

SAKingdom
Membre Club
Si tu obtien des nombres négatifs après un certain temps, c'est certainement parce que tu utilise une variable signé. La limite d'une variable signé codé sur 32 bits est 2147483647 je crois. Pour une variable non signé c'est 4294967295.

Quoi qu'il en soit, on ne peut pas aller plus haut que ces limites avec une variable 32 bits (int, long). Va falloir travailler directement en mémoire. Fait une rechercehe sur ce site, il y a des exemples de ce genre.

C++ (@++)


Re : Suite de Fibonacci le 25/03/2007 17:04:18

Joky
Membre Club
Le truc c'est que la suite de Fibonacci ne prend jamais des valeurs énorme.

D'ailleurs elle est croissante et tend vers le nombre d'or 1.619 donc je ne vois pas trop en fait le rapport avec les grands nombres.

#include


Re : Suite de Fibonacci le 25/03/2007 17:26:54

acx01b
heu tu dois confondre avec une autre suite en rapport avec fibonacci car la suite de fibonacci c'est u0 = 1, u1=1, u(n+1) = u(n) + u(n-1) il existe aussi l'ensemble des suites u(n+1) = u(n) + u(n-1) avec u(i) et u(i+1) fixés la croissance de ces suites est de type exponentielle

Re : Suite de Fibonacci le 25/03/2007 17:32:29

SAKingdom
Membre Club
Je crois joky que ce qui tend vers le nombre d'or, c'est quand on divise le nombre actuel que l'on obtien avec la suite de fibo par le précédent obtenue.

C++ (@++)


Re : Suite de Fibonacci le 25/03/2007 17:41:42

Shakan972
J'ai effectivement trouvé une piste du côté d'une bibliothèque nommé "gn.h"
Le problème est que j'ai du mal à l'utiliser dans un de mes programmes en l'occurence mon fameux programme qui simule une suite de Fibonacci.

Qui plus est les commandes que l'on propose pour compiler la bibliothèque sont des commandes unix y aurait-il un moyen pour compiler cette bibliothèque sur DEV-C++ ?

Merçi d'avance.

Re : Suite de Fibonacci le 26/03/2007 20:52:59

Joky
Membre Club
Et j'suis bientot en 3année de licence de maths lol
Tristesse !
La suite de Fibonacci c'est là suite qu'on obtient en additionnant les deux termes précédents. Donc oui problème de "profondeur" avec les variables.

#include


Re : Suite de Fibonacci le 26/03/2007 22:53:14

Ombitious_Developper
Salut:

Un résultat négatif est absolument faux, si tu parts avec deux termes U0 et U1 dont la somme est >= 0.

Historiquement, cette suite est utilisée pour compter le nombre de lapins qu'on peut obtenir en faisant l'accouplement des individus de la génération (n-1) et (n-2), donc c'est logique que cette suite est toujours > 0.

U0 = 1
U1 = 1
Un = U(n-1) + U(n-2)

// Version récursive
int Fib (int n) {
   if (n <= 1) {
      return 1;
   }
   return Fib (n-1) + Fib (n-2);
 

________________________________________________________________________________
A.B. :  "Dieu nous donne des mains, mais il ne bâtit pas les ponts


Re : Suite de Fibonacci le 27/03/2007 04:11:46

SAKingdom
Membre Club
Je ne crois pas que le problème soit là. Le problème c'est qu'après une certaine valeur, la variable qui compte va dans le négatif. La seule explication est, selon moi, qu'il dépasse les 2147483647 et donc, qu'il utilise une variable signé. Pour corrigé, soit travailler en mémoire (très grand nombre), soit utiliser une variable non signé (mais probablement insuffisant, on retombra à 0 dépassé 0xFFFFFFFF (4294967295)).

C++ (@++)



[Page 1 Page 2]
Classé sous : programme, suite, fibonacci

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS