![]() |
Bienvenue invité ( Connexion | Inscription )
Il est interdit de poster directement à la racine de ce forum.
Veuillez créer votre topic dans le sous-forum approprié.
![]() |
![]()
Message
#1
|
|
![]() BIDOUILLE Guru ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 55 528 Inscrit : 14 Jan 2001 Lieu : Paris Membre no 3 ![]() |
Actuellement, sur mac on a pas de bons outils de bench.
Est-ce que quelqu'un voudrait qu'on en fasse ? J'ai quelques idées précises mais pas les connaissances suffisantes pour les réaliser. -------------------- C'est parce que la vitesse de la lumière est plus grande que celle du son que tant de gens paraissent brillants avant d'avoir l'air con
|
|
|
![]() |
![]()
Message
#2
|
|
![]() Méchant modérateur paranoïaque ![]() ![]() ![]() ![]() ![]() Groupe : Modérateurs Messages : 10 755 Inscrit : 24 Jan 2002 Lieu : Confoederatio Helvetica, Kanton Wallis Membre no 1 865 ![]() |
Je pose là un bout de code en c, on avait du faire un labo sur les suites de Fibonacci... Il y a la méthode récursive et itérative....
On a benché le tout avec la fonction gettimeofday.... qui est sensible à ce qui est en background, le code est pas forcément très beau ![]() ![]() CODE #include <iostream.h> #include <stdlib.h> #include <stdio.h> #include <iomanip.h> #include <ctime> #include <sys/time.h> using namespace std; int i, j, nb_termes; bool methode; int a = 1, b = 1, c = 1; //declaration de la fonction Fibor : fibonacci recursive int Fibor(int x) { if (x == 0 || x == 1) // cas particuliers return x; else if (x > 1) return (Fibor(x - 1) + Fibor(x - 2)); else return 0; } //declaration de la fonction Fiboi : fibonacci iterative int Fiboi(int x) { if (x == 0 || x == 1) // cas particuliers de la suite de Fibonacci return 1; else { for (j = 2; j <= x; j++) { a = b; b = c; c = a + b; return c; } } } int main() { int i; struct timeval tp1; struct timeval tp2; double s1, s2, m1, m2; cout << "Calcul des nombres de Fibonnacci par deux methodes" << endl; cout << "--------------------------------------------------\n" << endl; cout << "\nChoix de la methode de calcul : entrez ""1"" pour la version iterative ou ""0"" pour la version recursive" << endl; cin >> methode; while (cin.fail()) //traitement des caracteres non souhaites (differents de 1 ou 0) { cin.clear(); while ( cin.get() != '\n'); cout << "\nErreur de saisie. Entrez ""1"" pour la version iterative ou ""0"" pour la version recursive\n"; cin >> methode; } gettimeofday(&tp1,0); s1 = tp1.tv_sec; m1 = tp1.tv_usec; ////// methode recursive if (methode == 0) { cout << "Entrez le nombre de termes souhaites" << endl; cin >> nb_termes; while (cin.fail() || (nb_termes < 0)) //traitement des caracteres non souhaites (non entiers positifs) { cin.clear(); while ( cin.get() != '\n'); cout << "\nErreur de saisie. Entrez un nombre de termes positif et entier\n"; cin >> nb_termes; } cout << "\nSuite de Fibonacci (recursive)\n\n"; cout << "n F(n) \n"; cout << "-------------\n"; for (i = 0; i <= nb_termes; i++) { cout << setw(2) << i << " " << setw(-10) << Fibor(i) << endl; //printf("%-2d %-10d\n", i, Fibor(i)); } } ////// methode iterative else if (methode == 1) { cout << "Entrez le nombre de termes souhaites" << endl; cin >> nb_termes; while (cin.fail() || (nb_termes < 0)) //traitement des caracteres non souhaites (non entiers positifs) { cin.clear(); while ( cin.get() != '\n'); cout << "\nErreur de saisie. Entrez un nombre de termes positif et entier\n"; cin >> nb_termes; } cout << "\nSuite de Fibonacci (iterative)\n\n"; cout << "n F(n) \n"; cout << "-------------\n"; for (i = 0; i <= nb_termes; i++) { cout << setw(2) << i << " " << setw(-10) << Fiboi(i) << endl; } } gettimeofday(&tp2,0); s2 = tp2.tv_sec; m2 = tp2.tv_usec; cout << "Le temps d'execution est " << s2-s1+(m2-m1)/1000000 << "sec.\n"; return 0; } y a sûrement mieux qu'une suite de fibo pour les benchs, quelque chose de plus complet.... -------------------- Nothing Else Matters
|
|
|
![]() ![]() |
Nous sommes le : 1st August 2025 - 16:31 |