IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Téléchargé 5 fois
Vote des utilisateurs
0 
0 
Détails
Licence : Freeware
Mise en ligne le 14 octobre 2021
Plate-forme : Windows
Langue : Français
Référencé dans
Navigation

Suite de Fibonacci

Génération des termes de la suite de Fibonacci vers un fichier log.
Compilable avec Code::Blocks, sous Windows.
Nos ressources disponibles
Code C : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 
int main() 
{ 
    unsigned long long int a = 1; unsigned long long int b = 1; unsigned long long int c = 0; 
    FILE * fibo; 
    fibo = fopen ("fibonacci.log","a+"); 
    while (c < 4000000000) 
    { 
        c = a + b; 
        a = b; 
        b = c; 
        printf("%u \n", c);     // On affiche le nombre dans la console 
        fprintf(fibo, "%u \n", c);   // On enregistre ce nombre dans le fichier log 
    } 
    fclose(fibo); 
    return 0; 
}
Avatar de racine carrée
Membre habitué https://www.developpez.com
Le 26/07/2018 à 18:48
Et tu as calculé tous les termes jusqu'à 4000000000 ?
Ca a pris combien de temps ?
Avatar de Philippe JCG
Membre régulier https://www.developpez.com
Le 26/07/2018 à 19:32
Le calcul dure seulement 12 centièmes de secondes.

Voici les termes générés, on voit que ça augmente vite :

2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
5702887
9227465
14930352
24157817
39088169
63245986
102334155
165580141
267914296
433494437
701408733
1134903170
1836311903
2971215073

Si on testait la primalité des nombres entiers, c'est beaucoup plus long que les termes de la suite de Fibonacci.
Avatar de racine carrée
Membre habitué https://www.developpez.com
Le 26/07/2018 à 22:08
J'avais fait la même chose en python pour la listes des nombres premiers jusqu'à plus d'un milliard, mais ça avait tourné pendant plusieurs heures;
C'était encore en train de tourner et j'ai voulu ouvrir le fichier .txt (dans lequel s'enregistrait la liste au fur et à mesure) depuis l'IDE, sauf qu'il a planté à ce moment (le fichier était très gros), donc le programme n'a pas pu finir de s'exécuter !
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 19/02/2022 à 11:05
Bonjour,

Non, pas nécessairement. Mais pour un programme qui calcul Fibonacci, l'utilisation du C ou du C++ ne diffère pas. De plus, votre méthode pour calculer le temps est bancal. Il ne faut pas utiliser system qui a un lourd surcoût pour s'exécuter dans un programme.
Avatar de Guesset
Expert confirmé https://www.developpez.com
Le 20/02/2022 à 18:04
Bonjour,

La suite de Fibonacci tend vers une suite géométrique de raison (51/2 + 1) / 2 soit 1.618... le nombre d'or. Avec ça on trouve qu'il suffit de 92 itérations pour remplir un uint64_t. Ce qui finalement est assez faible donc assez rapide.

Salutations
Avatar de Philippe JCG
Membre régulier https://www.developpez.com
Le 27/07/2018 à 19:34
Il paraît que le langage C est plus rapide que le langage C++.
C'est vérifiable avec cette commande pour comparaison dans un code source : system("echo %time% >> fichier_log.txt";
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.