Pages : 1
#1 Le 26/10/2014, à 20:51
- Jetster
Génération combinaison
Bonjour à tous,
je me permets de poster ce sujet ici, je suis sous Ubutun et je cherche un moyen de pouvoir générer l'ensemble des combinaisons possible composé de huit caractère avec uniquement des chiffres entre 0 et 9 puis de pouvoir copier et coller dans un fichier texte.
Merci à vous, en espérant recevoir une réponse.
Hors ligne
#2 Le 26/10/2014, à 23:10
- Compte supprimé
Re : Génération combinaison
Un programme en python ? C'est pas très compliqué
#3 Le 27/10/2014, à 00:41
- Compte supprimé
Re : Génération combinaison
Au fait, j'y avais pas pensé, mais ça fait dix millions de nombres ton truc, t'as fait chauffer mon laptop
Voilà le code (oui, le premier truc auquel j'ai pensé c'est une fonction récursive, c'est pas du tout efficace mais au moins ça marche) :
#!/usr/bin/env python3
fichier="résultats.txt"
nbchiffres=8
sortie=open(fichier, "w")
c=list("0"*nbchiffres)
def write_combi(rang):
if rang==(nbchiffres-1):
for i in range(10):
c[rang]=str(i)
sortie.write("".join(c) + "\n")
else:
for i in range(10):
c[rang]=str(i)
write_combi(rang+1)
write_combi(0)
Attention ça va prendre pas mal de temps à remplir ton fichier. Je chercherai un truc mieux optimisé demain, là je dors
Edit : si c'est pour une bruteforce je dirai que je l'ai fait sous ta contrainte
Edit 2 : et avec Dropbox qui a voulu sauvegarder les résultats t'as aussi bouffé mon forfait T'es qu'un fumier
Edit 3 : comme t'as pas encore répondu, je prends le temps de te mettre une version plus rapide en C++ :
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const string nom_fichier("results");
const int nbchiffres(8), chiffremax(9);
void write_combi(ostream*, int, string*);
int main() {
string combi(nbchiffres, '0');
ofstream sortie(nom_fichier.c_str(), ios_base::out);
write_combi(&sortie, 0, &combi);
return 0;
}
void write_combi(ostream* sortie, int rang, string* cache) {
for (int i = 0; i<=chiffremax; ++i) {
(*cache)[rang] = to_string(i)[0];
if (rang == nbchiffres-1)
*sortie << *cache << '\n';
else
write_combi(sortie, rang+1, cache);
}
}
Dernière modification par CasoarRotatif (Le 27/10/2014, à 16:05)
Pages : 1