std::default_random_engine générer des valeurs comprises entre 0.0 et 1.0
Je veux être en mesure de générer des valeurs aléatoires entre 0.0 et 1.0
J'ai essayé d'utiliser
std::default_random_engine generator;
std::uniform_real_distribution<float> distribution(0.0, 1.0);
float myrand = distribution(generator);
La génération aléatoire de la valeur dans une boucle me donne toujours ces valeurs:
0.000022
0.085032
0.601353
0.891611
0.967956
0.189690
0.514976
0.398008
0.262906
0.743512
0.089548
Que puis-je faire pour obtenir des valeurs aléatoires?
Ne semble pas que hasard si j'ai toujours le même.
Semble assez aléatoire pour moi. Où est le problème?
ahem: "Ne semble pas que hasard si j'ai toujours le même."
Vous voulez donner les mêmes valeurs. Parce que le débogage non déterministe code est une douleur. Mais c'est toujours aléatoire. C'est juste pseudo-aléatoire et vous êtes toujours en commençant au même endroit. Vous avez juste besoin de modifier le point de départ.
Je suis assez sûr que, s'il voulait résultats déterministes, il ne serait pas demander non-déterministe résultats.
Il pourrait être maintenant. Mais quand il est de débogage il veulent faire de leur déterministe.
ahem: "Ne semble pas que hasard si j'ai toujours le même."
Vous voulez donner les mêmes valeurs. Parce que le débogage non déterministe code est une douleur. Mais c'est toujours aléatoire. C'est juste pseudo-aléatoire et vous êtes toujours en commençant au même endroit. Vous avez juste besoin de modifier le point de départ.
Je suis assez sûr que, s'il voulait résultats déterministes, il ne serait pas demander non-déterministe résultats.
Il pourrait être maintenant. Mais quand il est de débogage il veulent faire de leur déterministe.
OriginalL'auteur user1185305 | 2013-03-17
Vous devez vous connecter pour publier un commentaire.
s'ouvrir multiplier les programmes qui utilisent la même générateur de nombre aléatoire
ils vont produire les mêmes résultats, car ils ont la même valeur de la graine, qui est le temps.
Ce problème résolu par l'utilisation aléatoire de l'appareil, voir la description de l'au-delà:*/
random_device
- si vous savez qu'il est disponible sur les systèmes de votre programme doit s'exécuter, j'aime bien cette solution meilleure.OriginalL'auteur spin_eight
Si vous faites référence au fait que vous obtenez les mêmes résultats pour chaque exécution du programme, c'est parce que vous avez besoin de semences basé sur certains naturellement valeur aléatoire (par exemple, un certain nombre d'entrée par l'utilisateur, ou le nombre de millisecondes écoulées depuis que l'ordinateur est allumé, ou depuis le 1er janvier 1970, etc.):
OriginalL'auteur Andy Prowl
J'ai trouvé une autre bonne solution...
OriginalL'auteur smela