Bonjour,
Je suis en train de coder un programme pour brutforcer un algorithme de cryptage maison.
Mon problème est pour la génération de la liste des mots. J'ai pensé à réutiliser un algo que j'avais trouvé il y a quelques temps, il se base sur la transformation d'un entier vers la base l où l est le nombre de caractères qui peuvent apparaitre dans le mot.
Voici mon algo actuel qui transforme un entier en mot :
tablist contient la liste des caractères, idmot contient l'id du mot à générer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 idmot <- 123456 // l'id du mot tablist <- "abcdef....." // Début de la génération du mot myid <- idmot mot <- "" tant que myid != 0 mot <- mot + tablist[myid % tablist.length] // On rajoute un caractère myid <- myid/tablist.length // Division entière fin tant que
Et bien entendu tablist[ i ] représente le i-ème caractère de tablist en commençant à 0, tablist.length représente le nombre de caractères de tablist, et le % représente l'opérateur modulo.
Ça à l'aire bien au premier coup d'oeil, mais le problème c'est que le dernier caractère de mot ne sera jamais un "a" (le premier caractère de tablist).
Exactement de la même façon que quand on écrit un nombre, on n'a jamais de "0" au début.
Mais dans mon cas j'aurais besoin que "aaaa" soit généré aussi.
Avez-vous une idée pour que les mots qui finissent par un ou plusieurs "a" soient aussi générés ?
Merci d'avance.
Partager