Algoritmo per generare un "brute force"

di il
1 risposte

Algoritmo per generare un "brute force"

Ciao.
mi servirebbe l'algoritmo (spiegato a parole) in modo tale che, chiesto all'utente la lunghezza delle parole (max 10 caratteri), mi stampi a video (o in un file esterno, tipo un txt) tutte le possibilità (anche con le lettere ripetute).

poi mi arrangio io a trasformarmelo nel linguaggio che preferisco....

grazie


1 Risposte

  • Re: Algoritmo per generare un "brute force"

    Ecco il codice c++ FUNZIONANTE fino a 4 caratteri....
    #include <cstdlib>
    #include <iostream>
    #include <fstream>
    #define max 36
    
    using namespace std;
    
    int n;
    char v[]={'1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
    
    int main(int argc, char *argv[])
    {
        ofstream bruteforce;
        bruteforce.open("bruteforce.txt",ios::out);
        
            do{
        cout<<"Inserire lunghezza massima delle parole:";
        cin>>n;
        }while(n<=0 && n>4);
        
        cout<<endl<<"ATTENDERE... finche' il pc non da l'OK a chiudere c++"<<endl;
        
        if(n>=1)
        {
               for(int a=0;a<max;a++)
               bruteforce<<v[a]<<endl;
        }
        if(n>=2)
        {      
               for(int a=0;a<max;a++)
               {
                       for(int b=0;b<max;b++)
                       bruteforce<<v[a]<<v[b]<<endl;
               }
        }
        if(n>=3)
        {      
               for(int a=0;a<max;a++)
               {
                       for(int b=0;b<max;b++)
                       {
                               for(int c=0;c<max;c++)
                               bruteforce<<v[a]<<v[b]<<v[c]<<endl;
                       }
               }
        }
        if(n>=4)
        {      
               for(int a=0;a<max;a++)
               {
                       for(int b=0;b<max;b++)
                       {
                               for(int c=0;c<max;c++)
                               {
                                       for(int d=0;d<max;d++)
                                       bruteforce<<v[a]<<v[b]<<v[c]<<v[d]<<endl;
                               }
                       }
               }
        }
        
        cout<<endl<<"Ora su può chidere c++ e andare a vedere tutte le parole possibili generate!"<<endl;        
        
        system("PAUSE");
        return EXIT_SUCCESS;
    naturalmente se si va avanti vengono generate le parole anche di 5 6 et caratteri, ma il pc impiega del tempo a farlo (minuti-ore)

    e grazie comunque....
Devi accedere o registrarti per scrivere nel forum
1 risposte