J'ai une question sur le code suivant:
10989 13493 13169 18581 17972 29
4 Réponses :
rand () ne génère que des chiffres jusqu'à son rand_max.
selon msdn , sur Windows Rand_max n'est que 32767, ou (2 ** 15 - 1) (Notez qu'il s'agit de la norme RAND_MAX minimale autorisée (ici Si vous voulez des chiffres plus importants, vous devez l'appeler plus de fois et de bitShift, par exemple: p> (
Le comportement que vous rencontrez est due aux valeurs de sur le Système Windows 7 , rand_max code> sur les deux systèmes que vous testez. p>
Rand_max code> est 32767, une valeur significativement plus petite que n'importe quel environnement CodpePad exécute votre code. Pour ce fait, les valeurs générées de manière aléatoire sont dans une plage significativement plus petite. P>
Windows utilise un générateur de nombres aléatoires comportant une valeur maximale de 32767. Voir la valeur pour rand_max.
Vous pouvez créer un plus grand nombre aléatoire en collant la sortie de deux appels RAND (). P>
big_rand = rand() << 15 | rand();
Les résultats de RAND sont en fonction de la mise en œuvre et garantissent seulement 32767: P>
http://fr.cppreference.com/w/cpp/numeric/ Random / rand_max p>
Ainsi, lorsque vous exécutez votre code sur différents systèmes avec différentes implémentations de bibliothèque, vous pouvez obtenir différents résultats - Windows ne renvoie que des numéros allant jusqu'à 32767, de sorte que vous obtenez de petits numéros de votre code. P>