J'essaie la génération de nombres aléatoires du new library in C++11 pour une classe de dés simple. Je ne suis pas vraiment saisir ce qui en fait arrive, mais la référence montre un exemple simple:Puis-je créer et détruire à plusieurs reprises des objets générateur/distributeur aléatoires et les détruire (avec une classe «dés»)?
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(1,6);
int dice_roll = distribution(generator);
J'ai lu quelque part que la façon dont vous devriez que des semences « vieux » une fois (par exemple dans la fonction principale) dans votre application idéalement. Cependant, j'aimerais une classe de dés facilement réutilisable. Serait-il acceptable d'utiliser ce bloc de code dans une méthode dice::roll()
bien que plusieurs objets de dés soient instanciés et détruits plusieurs fois dans une application?
Actuellement, j'ai fait le générateur en tant que membre de la classe et les deux dernières lignes sont dans les méthodes: roll(). Il semble correct mais avant de calculer les statistiques que je pensais que je demanderais ici ...
Oui, c'est bien, mais pourquoi voudriez-vous créer une nouvelle distribution à chaque fois si vous avez seulement besoin de lancer des dés de toute façon? Oh, au fait, 'default_random_engine' est généralement un' linear_congruential_engine', qui est très rapide, mais qui a une corrélation sérielle. Cela peut ou peut ne pas vous intéresser. – nijansen