Publié le 22/12/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
2 commentaires

Afficher la suite de Fibonacci dans un JTable

La suite du mathématicien Fibonacci est la célèbre suite de nombre:
0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,...
Elle est utilisée dans de nombreux domaines qui vont des statistiques, à la finance et même à la littérature (Da Vinci Code). Le nombre doré, issu de la division f(n)/f(n-1), est une constante importante dans l'art et l'architecture.

Calcul de la suite de Fibonacci

Le but de la class FibonacciSerie est d'illustrer:
- la création d'un GUI contenant un JTable
- l'affichage d'un Double avec Double.toString et DecimalFormat,
- l'ajout d'une ligne dans un JTable.
import java.text.DecimalFormat;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
 
/**
 * Calculer les 30 premiers elements de la suite de Fibonacci
 * @author Fobec 2010
 */
public class FibonacciSerie extends JFrame {
 
    private JTable jTable = null;
/**
 * Constructeur
 * Creation du GUI
 */
    public FibonacciSerie() {
        super("Suite de Fibonacci");
 
        JScrollPane jscrollPane = new javax.swing.JScrollPane();
        DefaultTableModel tableModel = new DefaultTableModel(
                new Object[][]{},
                new String[]{
                    "n", "f(n)", "ratio"
                });
 
        jTable = new JTable(tableModel);
        jscrollPane.setViewportView(jTable);
        getContentPane().add(jscrollPane);
        setSize(600, 550);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
/**
 * Ajouter la suite de Fibonacci dans le tableau
 */
    public void fillTable() {
        this.appendLine(0, "1", "");
        this.appendLine(1, "1", "");
 
        double prev = 1;
        double prevprev = 1;
        double val = 0;
        Double ratio;
        DecimalFormat fmt = new DecimalFormat();
        fmt.setMinimumFractionDigits(0);
 
        for (int i = 2; i < 30; i++) {
            val = prevprev + prev;
            ratio = val / prev;
            this.appendLine(i, fmt.format(val), Double.toString(ratio));
            prevprev = prev;
            prev = val;
        }
    }
 
    /**
     * Ajouter une ligne au JTable
     * @param n indice
     * @param val f(n)
     * @param ratio f(n)/f(n-1)
     */
    private void appendLine(int n, String val, String ratio) {
        DefaultTableModel tablemodel = (DefaultTableModel) jTable.getModel();
        Object[] objects = new Object[3];
        objects[0] = n;
        objects[1] = val;
        objects[2] = ratio;
 
        tablemodel.addRow(objects);
    }
 
    /**
     * Exemple pour lancer la classe
     * @param args
     */
    public static void main(String[] args) {
        FibonacciSerie jFrame = new FibonacciSerie();
        jFrame.fillTable();
    }
}

Voici la suite des 30 premiers nombres de la suite de Fibonacci

Lorsque l'on execute la class ci-dessus, on obtient les 30 premiers nombres de la suite de Fibonacci. On remarque également que plus le nombre de boucle augmente plus on obtient un ratio proche du nombre d'or.

fibonacci_serie

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.
avatar coramarr

Publié par coramarr

le 26/09/2013 à 18:20:12

Peut-on trouver des infos sur cette suite qui serait utilise en statistiques. Des documents ou ouvrages qui relatent les divers possibilites d'utilisation de cette suite.
Je suis un particulier ni trop doue ni trop bete. Depuis le temps que j'entends parler de cette suite de FIBONACCI je me decide poser des questions sans grand espoir de reponse mais on ne sait jamais....
Cordialement

avatar amelia

Publié par amelia

le 28/10/2013 à 12:47:29

pour 30 sa donne 1346269

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - class
Mise a jour
22/12/2010
Visualisation
vu 12705 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 261 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Vivien Blasquez dans news

Le pagerank traduit la popularité d'un site, donc si il est important. Après ce n'est qu'un indicateur, et si il a eu ses heures de gloire, il n'est aujourd'hui qu'un critère parm...

Publié par Verkork dans java

Le probleme c'est que ce code ne convient pas quand une partie de la page est dynamique, ie qu'elle est rafraichit toutes les minutes par exemple. Par exemple pour une telle page, c'est...

Publié par olibul dans CMS

var
fn: string;

begin

Result:= False;
if strFont <> \'\' then begin

// Tester le nom: si affectation directe à TFont, modifications aléatoires

Publié par OmegaPlatypus dans java

Dans mon cas, plusieurs lettres etaient repetes plusieurs fois, dont la derniere a l'indfiniment. En ajoutant robot.keyReleaseKeyEvent.VK_A, robot.keyReleaseKeyEvent.VK_X, etc. apres chacune des frap...

Publié par foufou0406 dans CMS

merci !!!