Aller au contenu

Générateur de combinaisons aléatoires


Recommended Posts

Posté(e)

Bonjour, je vous partage un de mes tout premiers codes, que j'avais fais pour m'entrainer à la base.
Celui-ci n'est pas forcément optimisé, c'est pas nécessaire de le faire ceci dit.

Ce code va simplement générer toutes les combinaisons aléatoire jusqu'à 5 caractères, ce qui représente 62^5 entrées, dans un fichier texte.

Je n'ai pas fais plus car ça prend déjà une dizaine de giga et beaucoup d'heures pour aller jusqu'à là. :)

Vous devez simplement créer dans le dossier du code source texte les fichiers texte suivants : 1.txt  / 2.txt / 3.txt / 4.txt / 5.txt

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main()
{
	string caractere[62] = { "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",
                         "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",
                         "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
    string combinaison;
    int car1, car2, car3, car4, car5, car6, car7;

    ofstream fichier1("1.txt", ios::out | ios::trunc);
    if(fichier1)
    {
        //Calcul de toutes les combinaisons à 1 caractères : 62
        for(car1=0; car1!=62; car1++)
        {
            combinaison = caractere[car1];
            cout << combinaison << endl;
            fichier1 << combinaison << endl;
        }
        fichier1.close();
    }
    else
    {
        cout << "Impossible d'ouvrir le fichier !" << endl;
    }

    ofstream fichier2("2.txt", ios::out | ios::trunc);
    if(fichier2)
    {
        //Calcul de toutes les combinaisons à 2 caractères : 62²
        for(car1=0; car1!=62; car1++)
        {
            for(car2=0; car2!=62; car2++)
            {
            combinaison = caractere[car1] + caractere[car2];
            cout << combinaison << endl;
            fichier2 << combinaison << endl;
            }
        }
        fichier2.close();
    }
    else
    {
        cout << "Impossible d'ouvrir le fichier !" << endl;
    }


    ofstream fichier3("3.txt", ios::out | ios::trunc);
    if(fichier3)
    {
        //Calcul de toutes les combinaisons à 3 caractères : 62^3
        for(car1=0; car1!=62; car1++)
        {
            for(car2=0; car2!=62; car2++)
            {
                for(car3=0; car3!=62; car3++)
                {
                combinaison = caractere[car1] + caractere[car2] + caractere[car3];
                cout << combinaison << endl;
                fichier3 << combinaison << endl;
                }
            }
        }
        fichier3.close();
    }
    else
    {
        cout << "Impossible d'ouvrir le fichier !" << endl;
    }

    ofstream fichier4("4.txt", ios::out | ios::trunc);
    if(fichier4)
    {
        //Calcul de toutes les combinaisons à 4 caractères : 62^4
        for(car1=0; car1!=62; car1++)
        {
            for(car2=0; car2!=62; car2++)
            {
                for(car3=0; car3!=62; car3++)
                {
                    for(car4=0; car4!=62; car4++)
                    {
                    combinaison = caractere[car1] + caractere[car2] + caractere[car3] + caractere[car4];
                    cout << combinaison << endl;
                    fichier4 << combinaison << endl;
                    }
                }
            }
        }
        fichier4.close();
    }
    else
    {
        cout << "Impossible d'ouvrir le fichier !" << endl;
    }


    ofstream fichier5("5.txt", ios::out | ios::trunc);
    if(fichier5)
    {
        //Calcul de toutes les combinaisons à 5 caractères : 62^5
        for(car1=0; car1!=62; car1++)
        {
            for(car2=0; car2!=62; car2++)
            {
                for(car3=0; car3!=62; car3++)
                {
                    for(car4=0; car4!=62; car4++)
                    {
                        for(car5=0; car5!=62; car5++)
                        {
                            combinaison = caractere[car1] + caractere[car2] + caractere[car3] + caractere[car4] + caractere[car5];
                            cout << combinaison << endl;
                            fichier5 << combinaison << endl;
                        }
                    }
                }
            }
        }
        fichier5.close();
    }
    else
    {
        cout << "Impossible d'ouvrir le fichier !" << endl;
    }
}

Ca remonte loin, ce bout de code. A l'époque ça m'avait beaucoup amusé.
Il peut servir d'exemple si vous souhaitez faire de l'ouverture/écriture de fichier.

Posté(e)

Azad... C'est du C++ BORDEL! Y'a pas d'objets en C >< (enfin, en C modulaire, si, mais là n'est pas la question!) JE DEPLACE!

Mer il ait fou.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...