Bonjour,
Un générateur de nombres aléatoires doit être "initialisé" avec une graine. Ensuite, tout les nombres générés sont déterminés.
Si on régénère des nombres en repartant de la même graine, la suite de nombres générée sera identique.
A chaque graine est "associée" une suite déterminée.
C'est ce côté déterministe qui m'intéresse.
Dans un programme, j'ai besoin de deux générateurs de nombres pseudo-aléatoire déterministe.
Lorsque l'utilisateur demande la génération d'un nombre au premier générateur, celui-ci doit lui générer le nombre pseudo-aléatoire suivant avec sa propre graine.
Lorsque l'utilisateur demande la génération d'un nombre au deuxième générateur, ce dernier doit lui générer un nombre pseudo-aléatoire avec sa propre graine.
Supposons deux générateurs :
Générateur 1 (graine : 45) : 54 86 24 69 34 75 36 84 ...
Générateur 2 (graine : 68) : 21 68 43 97 25 48 62 76 ...
Si je demande 2 valeurs au premier générateur, puis 3 au second et enfin 4 au premier, je dois obtenir ceci : 54 86 21 68 43 24 69 34 75.
J'aimerais mettre ce mécanisme en place.
J'avais pensé à utiliser srand() et rand() de de la bibliothèque cstdlib mais je rencontre deux problèmes.
Le générateur de nombre pseudo-aléatoire n'est pas implémenté partout de la même manière. Il m’aurait fallu avoir le code de ces fonctions pour les implémenter moi même dans mon programme.
Mon autre problème, c'est que je crois qu'il n'est pas possible de posséder deux générateurs distincts. Il n'est pas possible de créer deux générateur possédant chacun le propre graine.
J'aimerais savoir comment m'y prendre pour réussir à mettre mon mécanisme en place. Je n'ai pas réussi à trouver les sources de ces fonctions. Si vous pouviez me donner un fonction permettant de générer des suites déterministes de nombre plus ou moins aléatoires, j'en serais ravis.
Merci beaucoup.
Partager