Maison > développement back-end > C++ > Est-ce que std::random_device est vraiment aléatoire dans Mingw gcc4.8.1 ?

Est-ce que std::random_device est vraiment aléatoire dans Mingw gcc4.8.1 ?

Patricia Arquette
Libérer: 2024-12-21 15:57:12
original
344 Les gens l'ont consulté

Is std::random_device Truly Random in mingw gcc4.8.1?

Aléatoire déterministe : std::random_device dans mingw gcc4.8.1

Malgré l'implication dans son nom, std::random_device ne peut pas toujours fournir des nombres véritablement aléatoires. Comme indiqué sur cppreference.com, cette fonctionnalité peut être simulée à l'aide d'un moteur de nombres pseudo-aléatoires si une véritable source non déterministe n'est pas disponible.

Dans le cas de mingw gcc4.8.1, l'expérimentation a révélé que std : :random_device génère systématiquement la même séquence de nombres pour chaque exécution de programme. Ce comportement déterministe est probablement intentionnel, soulignant la nature non aléatoire du résultat.

Atteindre un véritable caractère aléatoire

Pour obtenir un résultat véritablement non déterministe, envisagez ces alternatives :

  1. Semencer avec une véritable source aléatoire : Si disponible, utilisez un matériel ou générateur aléatoire au niveau du système pour amorcer le moteur Mersenne-Twister.
  2. Utilisez une implémentation alternative de std::random_device : Étudiez d'autres implémentations de std::random_device qui peuvent fournir un véritable caractère aléatoire.
  3. Envisagez d'autres bibliothèques aléatoires : Explorez des bibliothèques open source alternatives, telles que Boost.Random ou Libcint , qui offrent de robustes capacités de génération de nombres aléatoires.

En utilisant ces techniques, vous pouvez briser le comportement déterministe de std::random_device dans mingw gcc4.8.1 et générer de vrais nombres aléatoires pour vos candidatures.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal