Pourquoi est-ce que j'obtiens la même séquence de std::random_device avec MinGW GCC 4.8.1 ?
Dans le code fourni, une instance de std::random_device (rd) est utilisé comme graine pour un moteur Mersenne Twister (mt). Cependant, le comportement observé consistant à obtenir la même séquence de nombres aléatoires à chaque exécution suggère que le rd ne fournit peut-être pas une graine véritablement aléatoire.
Selon la documentation (http://en.cppreference.com/ w/cpp/numeric/random/random_device), std::random_device est conçu pour accéder à des sources matérielles non déterministes à des fins aléatoires. Cependant, si une telle source n'est pas disponible, l'implémentation peut recourir à un moteur de nombres pseudo-aléatoires. Cela pourrait expliquer le comportement déterministe observé avec MinGW GCC 4.8.1.
Il est important de noter que random_device n'est pas garanti de fournir un véritable caractère aléatoire. Certaines implémentations, comme celle de MinGW GCC 4.8.1, peuvent délibérément fournir une séquence fixe pour démontrer le caractère non aléatoire du flux.
Pour obtenir un résultat différent pour chaque exécution, il convient d'envisager des méthodes alternatives d'amorçage. le générateur de nombres aléatoires, par exemple en utilisant une graine basée sur l'heure actuelle ou un hachage cryptographique d'une entrée utilisateur.
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!