Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
Discussion fermée
#1 08-06-2009 12:07:28
- n0mad
- Membre
- Inscription : 08-06-2009
- Messages : 3
Generation pseudo-aléatoire de chaines [Résolu]
Bonjour,
Je suis à la recherche d'une fonction/procédure mathématique pour générer de façon pseudo-aléatoire une suite de caractères - sans jamais ressortir 2 fois la même suite - et ce jusqu'à ce qu'un ensemble définit devienne "vide".
Je n'ai pas franchement un bon background mathématique (c'est pour ça que je m'en remet à vous!) et je ne sais pas si c'est possible. L'idée qui se cache derrière est la suivante :
alphabet = "abcd"
longueur = 4
combinaisons possibles :
- aaaa
- aaab
- aaac
- aaad
- aaba
- aabb
- ....
- dddd
Ce que je cherche à faire c'est donc de produire cette suite, mais dans un ordre (pseudo-)aléatoire :
- adcd
- aacd
- daaa
- .. etc
Actuellement, je sais le faire, mais je fais comme suis :
- calcul de toutes les combinaisons possibles et stockage en mémoire (oui derrière il y a un enjeux de programmation !).
- prise d'une combinaison aléatoirement - jusqu'à ce que toutes les combinaisons aie été prises.
Ca fonctionne très bien, mais avec un espace mémoire limité (1-2Go), on ne peut pas stocker toutes les combinaisons dans le cas d'un alphabet beaucoup plus grand que "abcd" et/ou une longueur plus grande.
Mon idée est donc d'appeler une fonction mathématique, mais je n'ai aucune idée de comment faire une telle fonction mathématique, ni même si c'est possible.
Si vous avez des pistes...
PS : vous l'aurez compris je pense il s'agit de génération de mot de passe.
Merci
Hors ligne
#2 08-06-2009 12:22:54
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 385
Re : Generation pseudo-aléatoire de chaines [Résolu]
Bonjour,
A défaut de piste immédiate (c'est possible, la suite prouve que oui), je te propose un freeware tout bête qui fait ce travail, regarde du côté de :
http://www.01net.com/windows/Utilitaire … 10657.html lje l'utilisais pour générer 150 à 200 mots de passe aléatoires, chaque début d'année scolaire...
@+
Hors ligne
#3 08-06-2009 12:31:24
- n0mad
- Membre
- Inscription : 08-06-2009
- Messages : 3
Re : Generation pseudo-aléatoire de chaines [Résolu]
Merci yoshi de ta réponse,
Je viens de regarder, effectivement c'est freeware, mais les sources ne sont pas à disposition! Et j'ai pas trop envie de faire du reverse... :o)
Quoi qu'il en soit, je crois que l'approche d'un générateur de mot de passe est différente de mon problème car si le programme génére quelques mot de passes identiques ce n'est pas bien grave, tandis que dans mon cas il ne faut surtout pas qu'un mot de passe soient générés plus d'une fois.
Je pensais à faire 4 matrices carrés et prendre les lettres aléatoire dedans et marqué les positions prises....c'est du bricolage mais ça pourrait marché...
Une autre idée/piste ?
Merci
Hors ligne
#4 08-06-2009 13:54:10
- n0mad
- Membre
- Inscription : 08-06-2009
- Messages : 3
Re : Generation pseudo-aléatoire de chaines [Résolu]
Hello,
Peut-etre un problème plus simple.
Dans l'exemple précédent, on a :
- alphabet = "abcd"
- longueur = 4
Le nombre de combinaisons est donc de 4^4 = 256 combinaisons. On peut donc voire le problème sous la forme suivante : piocher au hasard un nombre compris entre 0 et 256 - évidement chaque nombre ne doit sortir qu'une seule fois...
c'est plus simple ? =)
Dernière modification par n0mad (08-06-2009 13:54:34)
Hors ligne
#5 08-06-2009 14:01:17
- Fred
- Administrateur
- Inscription : 26-09-2005
- Messages : 7 349
Re : Generation pseudo-aléatoire de chaines [Résolu]
Salut,
Il faut trouver un dictionnaire entre entier choisi au hasard et ton mot de passe.
Si ton choix de nombre aléatoire renvoie 0, tu retournes aaaa
s'il renvoie 1, tu retournes aaab
s'il renvoie 2, tu retourne aaac
s'il renvoie 3, tu retournes aaad
s'il renvoie 4, tu retournes aaba
Dans ce cas, pas besoin de stocker autre chose qu'un tableau de booléens pour savoir si l'entier a déjà été choisi ou non,
et ca, c'est l'information que tu as besoin au minimum de stocker.
Yoshi se fera un plaisir de t'écrire une fonction comme la précédente en Python!
F.
En ligne
Pages : 1
Discussion fermée







