CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Nombre d'or dans la suite de Fibonacci

dzkille
dzkille
Niveau 10
01 mars 2016 à 17:45:38

Bonjour à tous, après vous avoir embêter la dernière fois pour savoir comment programmer la suite de Fibonacci en Java, je reviens cette fois-ci pour vous demandez comment faire en sorte qu'elle tende vers le nombre d'or, je vais illustrer mes propos se sera peut-être plus simple à comprendre :
https://image.noelshack.com/fichiers/2016/09/1456850543-sans-titre.png

Pour résumer simplement, dans la colonne ou sont affichés les Sn, je suis censé avoir des nombres qui tendraient vers le nombre d'or, hors je ne sais pas du tout comment faire en sorte que cela puisse marcher car je ne connais pas l'opération a effectuer, ni encore même comment la mettre en place dans la suite.

Tikim
Tikim
Niveau 21
01 mars 2016 à 19:16:28

Je dirais que Sn vaut t1/t2, attention au type par contre car ce sera pas un entier du coup. A chaque itération calcule et affiche Sn.

Ah et attention au cas où t2 = 0 :ok:

Tikim
Tikim
Niveau 21
01 mars 2016 à 20:34:34

Oui mais vu son algorithme ce sera plus pratique d'afficher S(n-1) du coup :o))

Tikim
Tikim
Niveau 21
01 mars 2016 à 21:13:06

Parce qu'il y a une opération en moins à faire (l'addition de t1 et t2), ou alors il faut réorganiser un poil le code. Une broutille m'enfin :noel:

Tikim
Tikim
Niveau 21
02 mars 2016 à 06:16:36

Bah c'est une exception :o))
Je dis pas que c'est le plus logique, juste qu'avec le code qu'il a montré c'est plus facile.

FreddyCouscous
FreddyCouscous
Niveau 10
02 mars 2016 à 14:12:27

C'est simple, le nombre d'or c'est :

phi = [1+sqrt(5)] / 2

Ce calcul nous donne la valeur 1.61803398875 ....

Bon, si on prend le rapport de nombres consécutifs de la suite de Fibonacci on voit qu'on se rapproche du nombre d'or

Par exemple : 21/13 = 1.61538461538

Dans la boucle de ton algo tu as juste à créer une variable "NombreOr" et à lui affecter la valeur "t1/t2".

t1 représentant l'état futur : (ancienne valeur de t1) + (t2).

t2 représentant l'état passé : t1.

Comme dit précédemment, attention au type de la variable dans laquelle tu va stocker ce rapport car c'est un nombre à virgule. Libre à toi d'afficher ce rapport suivant un certain nombre de décimales.

Message édité le 02 mars 2016 à 14:12:57 par FreddyCouscous
dzkille
dzkille
Niveau 10
02 mars 2016 à 17:33:45

Merci à tous pour vos réponses, j'ai donc suivi vos conseils et malheureusement j'ai visiblement un problème avec une exception : https://image.noelshack.com/fichiers/2016/09/1456936180-sans-titre.png
C'est la première fois que j'ai ce genre d'erreur, je me demande donc comment faire en sorte qu'il n'y ai plus ce problème :hap:

FreddyCouscous
FreddyCouscous
Niveau 10
02 mars 2016 à 18:03:49

bah ouais pour le premier coup tu divises par 0 :hap:

t2 prend la valeur de t1 qui est égale à ... 0.

Soit tu changes tes valeurs initiales mais il faudra indiquer "en dur" les valeurs que prend la suite au début. Soit tu changes ton algo pour un algo récursif. C'est un peu plus compliqué à comprendre au début mais c'est plus facile à utiliser.

Message édité le 02 mars 2016 à 18:05:09 par FreddyCouscous
dzkille
dzkille
Niveau 10
02 mars 2016 à 18:15:17

Voila j'ai un peu modifier mon algo : https://image.noelshack.com/fichiers/2016/09/1456938792-sans-titre.png
Le seul souci qui se pose c'est qu'au finale, je n'obtienne pas le nombre d'or :hap:
Je crois que mon soucis vient de mes variables et en ayant vu très peux pour le moment à savoir : double, int, short, long et byte, je suis un peu perdu dans leurs utilisations.

FreddyCouscous
FreddyCouscous
Niveau 10
02 mars 2016 à 19:04:44

Le 02 mars 2016 à 18:41:52 bluepoint_ a écrit :

Soit tu changes ton algo pour un algo récursif. C'est un peu plus compliqué à comprendre au début mais c'est plus facile à utiliser.

ça va pas résoudre le problème ça eh

Dans l'absolu non mais ça peut amener à une autre réflexion qui peut amener à la résolution du problème.

Le seul souci qui se pose c'est qu'au finale, je n'obtienne pas le nombre d'or :hap:

tu t'es trompé tu calcules l'inverse, c'est t2/t1 comme je l'avais dit, et pas t1/t2 comme certains ont écrit :)

Sur le dernier screen c'est bien t2/t1. Sur les premiers screen c'est t1/t2 qu'il faut faire.

dzkille
dzkille
Niveau 10
02 mars 2016 à 19:06:23

Voila tout est bien qui fini bien, merci à tous pour votre contribution !
https://image.noelshack.com/fichiers/2016/09/1456941824-sans-titre.png

Tikim
Tikim
Niveau 21
02 mars 2016 à 19:09:42

Ah bah c'est clair qu'en inversant t2 et t1 ce qu'on t'a dit au début n'est plus valide :o)) et je t'avais dit de faire attention à la division par zéro. C'est une exception qu'il faut avoir en tête à chaque fois qu'on effectue une division.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware