Problèmes de reproductibilité avec std::random_device et MinGW
En C , le
Analyse
Le comportement incohérent a soulevé des questions sur le déterminisme de
"Notez que std::random_device peut être implémenté en termes de moteur de nombres pseudo-aléatoires si une source non déterministe (par exemple, un périphérique matériel ) n'est pas disponible pour l'implémentation."
Cela suggère que lorsqu'une véritable source aléatoire n'est pas disponible, la bibliothèque se rabat sur un générateur pseudo-aléatoire. Cependant, dans le cas de MinGW 4.8.1, il semble que même avec un caractère pseudo-aléatoire, le résultat reste systématiquement prévisible.
Raisonnement suspecté
Une théorie postule que ce comportement peut être intentionnel. En fournissant des séquences non aléatoires, la bibliothèque met en évidence les défauts potentiels du caractère aléatoire de l'implémentation sous-jacente. Cela servirait d'avertissement aux développeurs que les nombres aléatoires générés peuvent ne pas être vraiment imprévisibles.
Résolution
Pour générer des séquences véritablement aléatoires avec MinGW 4.8.1, les utilisateurs peut envisager d'utiliser des implémentations alternatives des générateurs de nombres aléatoires fournis dans le guide
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!