1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#include <iostream>
#include <string>
#include <vector>
#include <windows.h> /* Pour calculer le temps */
using namespace std;
static string alphabet="abcdefghijklmnopqrstuvwxyz";
vector<string> generated;
void generate(string chaine, unsigned size)
{
if (chaine.length()<size)
{
for(int i=0;i<26;i++)
{
string tmp=chaine+alphabet[i];
// generated.push_back(tmp);
/* Cette ligne est en commentaire car si tu les stockes, ta mémoire va exploser, puisque le nombre de mots correspond au nombre 26+26^2+...+26^p.Pour 8 lettres le nombre de mots est de 217 180 147 158 soit 217*8 = 1, 7 To environ .*/
generate(tmp,size);
}
}
}
int
main()
{
LARGE_INTEGER start,end,freq;
long long elapsed;
for(int i=0;i<8;i++)
{
generated.clear();
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter (&start);
generate("",i);
QueryPerformanceCounter (&end);
elapsed= (((end.QuadPart)-(start.QuadPart)) * 1000000) / freq.QuadPart;
cout<<"Temps d'execution ["<<i<<" lettres]:"<<(float)elapsed /1000000<<" secs"<<endl;
}
/**************************************
for(int i=0;i<generated.size();i++)
cout<<generated[i]<<endl;
//Pour afficher les résultats
****************************************/
} |