Bonjour à tous,
Actuellement j'aurai besoin pour une épreuve de connaître toutes les combinaisons de 8 caractères que l'on peut obtenir à partir de la chaîne "azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789_$&#@" ...
J'ai entendu parler de "l'étoile de Kleene" qui, après de petites recherches, semble correspondre, mais je ne sais malheureusement pas comment la mettre en oeuvre en Java
J'aimerai savoir si certains ont déjà rencontré cette nécessité ou sauraient comment résoudre ce problème (ou, si une discussion qui en parle m'a échappé, avoir un lien y menant).
J'ai tenté ceci de mon côté, mais si quelqu'un a un code plus efficace ... :
Merci de votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 import java.io.* ; public class js { static String tab="azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789_$&#@"; static int taille=tab.length(); public static void main(String[] args)throws IOException{ generer(8, ""); } // nbr : nombre de caractères que doivent contenir les chaînes de résultat public static void generer(int nbr, String sb) throws IOException {String result = ""; if (sb.length()==nbr) { //on enregistre la chaîne result += sb + "\n"; return; } //taille est la longeur totale de la chaîne de référence for(int i=0; i<taille; i++) { generer(nbr, sb+tab.charAt(i)); } //Ici FluxFichier.écrire() est une méthode perso qui écrit dans //un fichier passé en argument le contenu d'un chaîne passée en argument2 FluxFichier.écrire("/home/lev-arcady/Documents/test.txt", result); } }
Partager