IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Humour Informatique Discussion :

Fibonacci: différentes approches

  1. #1
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut Fibonacci: différentes approches
    Images attachées Images attachées  
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  2. #2
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    J'adore la javadoc qui n'apporte strictement aucune information utile pour la "large company", c'est exactement ça (même si j'ai aussi souvent vu des "//TODO Javadoc") !

    Sinon, les meilleurs sont les chats, je l'ai toujours dit !

  3. #3
    Membre éprouvé Avatar de Grom61736
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 169
    Points : 1 144
    Points
    1 144
    Par défaut
    Triste que le dev de la strat-up n'utilise pas un accumulateur, les perf vont être désastreuses.

    Sinon, la formule fermée pour la suite de Fibonacci, je me souviens l'avoir démontré (et tant d'autres) lors de ma 4ème année d'étude.
    Si j'avais su, j'aurais fait un PHD

  4. #4
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    C'est moi, ou une approche récursive donne des temps de calcul atroces sur une valeur élevée? C'est joli et élégant, la récursivité, mais perso, j'aurais bêtement rempli un tableau de 1 à N. Avec un bête for. C'est moche, mais c'est compréhensible par un gnou.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  5. #5
    Membre éprouvé Avatar de Grom61736
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 169
    Points : 1 144
    Points
    1 144
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    C'est moi, ou une approche récursive donne des temps de calcul atroces sur une valeur élevée? C'est joli et élégant, la récursivité, mais perso, j'aurais bêtement rempli un tableau de 1 à N. Avec un bête for. C'est moche, mais c'est compréhensible par un gnou.
    C'est justement ce que j'ai dit précédemment.
    L'ordi gardant une liste d'appel en mémoire qui se dédouble à chaque fois, la StackOverflow n'est pas loin.

    Il doit passer par un accumulateur et donc une fonction auxilliaire.
    Généralement, c'est une des premières choses qu'on apprend avec la programmation récursive.

  6. #6
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    Par défaut
    Citation Envoyé par Grom61736 Voir le message
    Il doit passer par un accumulateur et donc une fonction auxilliaire.
    Généralement, c'est une des premières choses qu'on apprend avec la programmation récursive.
    Je me souviens même plus comment on fait (alias: une bonne âme pour me donner la solution car j'ai pas envie de réfléchir ?).
    http://www.traducteur-sms.com/ On ne sait jamais quand il va servir, donc il faut toujours le garder sous la main

  7. #7
    Membre éprouvé Avatar de Grom61736
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 169
    Points : 1 144
    Points
    1 144
    Par défaut
    Ici, tu dois garder deux valeurs en "mémoire" car le "n" est obtenu à partir du "n-1" et "n-2".

    Donc typiquement
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public int fibonacci_aux(int n, int n_1, int n_2){
       if(n==0) {
          return n_1
       }
       else{
          return fibonacci_aux(n-1, n_2, n_1+n_2)
       }
    }

    Donc,
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public int fibonacci(int n){
       return fibonacci_aux(n, 1, 1)
    }

  8. #8
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Ou alors l'approche itérative toute bête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int n_minus_1 = 1;
    int n_minus_2 = 1;
    int result = 2;
    for(int i=2; i<n; ++i)
    {
      int tmp_result += (n_minus_1 + n_minus_2);
      n_minus_2 = n_minus_1;
      n_minus_1 = tmp_result;
      result = tmp_result;  
    }
    return result;
    Et encore mieux, faire un branchement: si n est petit, appliquer l'algo récursif, s'il est grand, appliquer l'itératif. C'est le sens du commentaire de la startup: "switch over to iterative approach at some point".
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  9. #9
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,
    Vous excuserez mon ignorance crasse, mais ... a quoi ca sert, une suite de Fibonacci ? (en "vrai").
    Merki.
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  10. #10
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Points : 909
    Points
    909
    Par défaut
    Citation Envoyé par Sunchaser Voir le message
    Bonjour,
    Vous excuserez mon ignorance crasse, mais ... a quoi ca sert, une suite de Fibonacci ? (en "vrai").
    Merki.
    Je crois que certains phénomène biologique la suive mais je ne sais plus les quels.

    Edit un exemple :

    http://lenombredor.wikispaces.com/biologie-nature (pour voir le schéma c'est plus parlant)

    L’exemple des abeilles

    Les abeilles font partie de la famille des Hyménoptères qui comprend aussi les guêpes et environ 100 000 espèces de fourmis.
    Quasiment toutes les espèces de cette famille ont une particularité chimique assez curieuse: les œufs fécondés donnent naissance à des femelles tandis que ceux qui ne l'ont pas été donnent naissance à des mâles.
    Chez les abeilles, c'est donc la reine qui contrôle le sexe d'un œuf en décidant ou non de le féconder à partir du sperme emmagasiné des mois, voire des années auparavant lors du vol nuptial. Ainsi, génétiquement parlant, l'abeille femelle a un père et une mère (la reine), alors que l'abeille mâle a une mère uniquement.

    On schématise les ancêtres (M=mâle ; F=femelle) d'une abeille mâle.
    biologie-image21.jpeg

    En remontant les générations, on trouve donc des nombres d'ancêtres égaux aux nombres de la suite de Fibonacci.
    On remarque également qu'à chaque génération, les nombres de femelles et de mâles sont deux nombres consécutifs de cette suite.
    Informaticienne le jour, créatrice de bijoux la nuit (https://www.facebook.com/La-Fée-Chro...07539656306271) et maman à plein temps !

  11. #11
    Membre éprouvé Avatar de Grom61736
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 169
    Points : 1 144
    Points
    1 144
    Par défaut
    Citation Envoyé par Sunchaser Voir le message
    Bonjour,
    Vous excuserez mon ignorance crasse, mais ... a quoi ca sert, une suite de Fibonacci ? (en "vrai").
    Merki.
    Théoriquement, à rien en fait si ce n'est qu'elle apparait de temps en temps dans les problèmes de dénombrement.

    Et vu que c'est des maths, y a juste le "théoriquement" qui est interressant.
    Et là, pas de bol, il n'y a pas non plus de vraies applications pratiques.

    C'est un peu comme le nombre d'or, on utilise à chaque fois ces exemples pour dire "les maths c'est magique" mais les matheux ne les aiment pas car ça n'a strictement aucun intéret théorique.


    Pour Lady, pour les abeilles, il y a un problème vu que l'explication ne parle pas des ouvrières qui sont asexuées.

  12. #12
    Membre confirmé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par Lady Voir le message
    Je crois que certains phénomène biologique la suive mais je ne sais plus les quels.

    Edit un exemple :
    C'est pas aussi l'accouplement des lapins ?
    J'ai de vagues souvenirs quand j'ai appris cette suite ^^
    Windev 23 - SQL SERVER - PHP
    Play : TFT - Jeux indé

  13. #13
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    En fait, les économistes, et plus généralement tous ceux qui travaillent sur les mathématiques financières, raffolent de ce genre de jouet.

    Un exemple concret et véridique: la banque multinationale AAF (Arnak And Flouze) basée au Luxenchtein, s'est retrouvée, après la crise des raves de 2004, en possession de millions de titres pour raves (que Mercedes Croc appelle des 'actifs pourris' dans son fameux manuel de management "Après la crise, vous rependrez bien un peu de vaseline?", édité chez Fion, 2009).

    Le défi de Mr Larry Golade, directeur financier chez AAF, c'est de se débarrasser le plus rapidement de ces actifs pour raves, avant que ça pète et qu'il ne serve de fusible, c'est à dire qu'il ne se prenne un procès, qu'il en prenne plein la poire et que les pontes de l'USPGNL (l'union socialiste populaire de gauche nationale libérale, le parti au pouvoir au Luxenchtein), puisse prouver qu'il lutte activement contre les salauds de la finance. Enfin bref, c'est là que ça devient intéressant, mais aussi compliqué, alors suivez bien.

    Notre pauvre Larry, donc, se retrouve avec 100 millions d'euros d'actifs pour rave qui ne vaudront plus un radis dans quelques semaines. Il doit trouver un moyen de refourguer rapidement toute cette raclure. Il se rappelle que la AAF a acheté, le mois dernier, pour 100 millions d'euros de lunettes pour huitres. Il faut savoir que la lunette pour huitres a un comportement exemplaire dans les modèles prédictifs utilisés par l'AAF. Selon ces modèles, les lunettes pour huitres que l'AAF a acheté 10 euros l'unité cette année, en vaudront 20 l'année prochaine. Et comme Mr Jaymie L'Paquet, financial chief executor de l'AAF, a des potes dans la banque rivale F&B (Flouze & Benef), il sait que les modèles prédictifs de la F&B confirment ces résultats.

    Notre bon vieux Larry a la solution: il va créer un nouvel investissement, baptisé le fond UMaDeF (Un Max De Flouze) qui consiste en 50% d'actifs de raves, et 50% d'actifs de lunettes à huitres. Il vendra ça aux retraités luxenchteiniens qui cherchent de bons investissement, en leur montrant les courbes des modèles prédictifs des lunettes pour huitres, qui sont des plus flatteuses, et se débarrassera ainsi des actifs pour raves sans que personne ne s'en rende compte.

    Le rapport avec Fibonacci dans tout ça, c'est que les modèles prédictifs qui calculent les évolutions des produits financiers utilisent ce type de série. Le principe de ces modèles prédictifs c'est de trouver des patrons (patterns) dans le comportement des actifs. Mais pour chercher ces patrons, les économistes utilisent des choses qu'ils connaissent, qui sont souvent des séries dites "naturelles" (qui représentent, plus ou moins, des phénomènes ou des tendances naturelles), comme par exemple la suite de Fibonacci.

    Concrètement, un économiste veut créer un modèle prédictif. Pour ce faire, il a 10 ans de données concernant la totalité des actifs côtés au Stoxx. Il va essayer d'en lire les tendances, de façon à ce qu'un jour, si un actif présente les même évolutions, il pourra prévoir l'évolution de cet actif. Et pour essayer de trouver ces tendances, il va utiliser des séries connues (Fibonacci, Rainbow, Monaco, etc.), et si ça colle avec l'une d'entre elle, il l'utilisera pour modéliser le patron.

    Je ne suis pas sûr d'avoir été clair là
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  14. #14
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 726
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Yop !
    Citation Envoyé par r0d Voir le message
    (...) Je ne suis pas sûr d'avoir été clair là
    Pas trop, non, mais c'est normal, ce monde (Finances and Flouz' inc.) ne l'est pas plus

    Mais en tout cas tu m'as fait rigoler et ça, ça compte, même si on ne peut le quantifier dans aucune suite mathématique
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  15. #15
    Inactif  
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 42
    Points : 0
    Points
    0
    Par défaut
    moi je suis pour la version meow


  16. #16
    Expert confirmé Avatar de Barsy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    1 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 484
    Points : 5 277
    Points
    5 277
    Par défaut
    Juste pour apporter une touche mathématique au débat. Et si jamais on vous demande, il existe un moyen simple et rapide de calculer n'importe quel terme de la suite de Fibonnaci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    double getFibonacciNumber(int n)
    {
    	double phi = (1 + Math.Sqrt(5)) / 2;
    	double phi2 = - 1 / phi;
    	double result = Math.Round((1/Math.Sqrt(5)) * (Math.Pow(phi, n) - Math.Pow(phi2, n)))
    return result;
    }
    Voilà !!
    "tatatatatatatatataaa !! tata taaa !! tata taaa !! tatatata tataaa !! tata taaa !! tata taaa !!"

  17. #17
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Citation Envoyé par r0d Voir le message
    Je ne suis pas sûr d'avoir été clair là
    Si, si, très. Merci.
    On dirait une explication du Docteur CAC, pour le style.
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  18. #18
    Expert confirmé Avatar de Barsy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    1 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 484
    Points : 5 277
    Points
    5 277
    Par défaut
    Citation Envoyé par mlp56 Voir le message
    La suite de Fibonacci est une suite d'entiers


    donc arrêtez de nous faire chier avec vos fonctions de merde qui renvoie des doubles .


    Ok les noobs ?
    D'où l'utilisation de la fonction Math.Round() dans le code qui arrondi à l'entier le plus proche. C'est simplement que celle-ci retourne un double (enfin, en C# en tout cas, dans les autres langages je ne sais pas). Tu n'as qu'à faire la conversion en integer avant le return si tu souhaites obtenir un entier, je suppose que tu sais faire n'est-ce pas ?

    Il n'est pas nécessaire de se montrer désagréable en tout cas.

    PS : Je viens d'ailleurs de tester le code que j'ai écrit plus haut, c'est quand même bien efficace... Oui, je sais, je me jette des fleurs, et alors
    "tatatatatatatatataaa !! tata taaa !! tata taaa !! tatatata tataaa !! tata taaa !! tata taaa !!"

  19. #19
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Citation Envoyé par mlp56 Voir le message
    La suite de Fibonacci est une suite d'entiers


    donc arrêtez de nous faire chier avec vos fonctions de merde qui renvoie des doubles .


    Ok les noobs ?
    Saint mlp56: défenseur des entiers, et de l'intégrité de la suite de Fibonacci.

    Faites attention tout de même, le mec qui a fait feu cet aprèm sur Paris est peut être un défenseur d'une autre suite mathématique, ulcéré de voir tout les mauvais traitements / interprêtations qui ont pu en être fait.
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  20. #20
    Membre averti

    Profil pro
    Inscrit en
    Juin 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 114
    Points : 327
    Points
    327
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Barsy Voir le message
    Juste pour apporter une touche mathématique au débat. Et si jamais on vous demande, il existe un moyen simple et rapide de calculer n'importe quel terme de la suite de Fibonnaci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    double getFibonacciNumber(int n)
    {
    	double phi = (1 + Math.Sqrt(5)) / 2;
    	double phi2 = - 1 / phi;
    	double result = Math.Round((1/Math.Sqrt(5)) * (Math.Pow(phi, n) - Math.Pow(phi2, n)))
    return result;
    }
    Voilà !!
    Tu peux faire plus simple : comme phi2 est inférieur à 1, il n'a pas d'effet sur le résultat.

    Au final tu as quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int fib(int n)
    {
    double rac5=sqrt(5.0);
    double dfib=pow((1.0+rac5)/2.0,n)/rac5;
    return (int)(dfib+0.5);
    }
    A mon avis, la solution du docteur en maths mériterait d'être un peu plus matheuse...

    La fonction génératrice de la suite de Fibonacci est x/(1-x-x^2)
    On obtient donc les termes de la suite en développant cette fonction en série entière, d'un coup de matlab, ou de mathematica...

    En J (un langage fonctionnel dérivé de l'APL): ça donne, pour les 20 premiers termes

    Explication : (%-. - *: ) c'est la fonction génératrice (ca se lit "diviser par négation moins carré", négation c'est 1-x, carré x^2, négation moins carré, c'est donc : 1 - x - x^2, diviser par négation moins carré, ca nous fait donc x/(1-x-x^2), qui a dit qu'il fallait des x pour définir une fonction?)

    t. ca calcule le développement en série d'une fonction, i.20 (i se prononce iota) c'est la suite des 20 premiers entiers, et >: l'incrémentation : donc >:i.20 ce sont les entiers de 1 à 20.

    Francois

Discussions similaires

  1. Responsive design : différentes approches
    Par sxf-labs dans le forum Webdesign & Ergonomie
    Réponses: 0
    Dernier message: 15/09/2013, 14h12
  2. Les différentes approches de l'architecture de médiation
    Par hnouna2007 dans le forum Architecture
    Réponses: 0
    Dernier message: 04/07/2009, 13h42
  3. Récupérer 10 nb différents avec un calcul aléatoire
    Par BXDSPORT dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2002, 02h35
  4. Simulation de transmission de paquet entre différent réseaux
    Par MelloW dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 19h51
  5. Réponses: 2
    Dernier message: 17/05/2002, 20h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo