Comment générer un nombre aléatoire compris entre 0 et 1?c - générateur de nombres aléatoires
Répondre
Vous pouvez générer un nombre pseudo-aléatoire à l'aide de stdlib.h. Il suffit d'inclure stdlib, puis appelez
double random_number = rand()/(double)RAND_MAX;
Pour référence, cela donnera des valeurs dans [0.0, 1.0] c'est-à-dire incluant à la fois 0.0 et 1.0. –
Et surtout, il ne sera probablement pas équitable (!) Il existe de nombreuses implémentations où l'ensemble [0.0, 1.0] contient plus de RAND_MAX éléments. (En C, l'ensemble [0.0, 1.0] est un ensemble fini dénombrable_) – MSalters
@ MSalters, c'est un problème intéressant, des idées sur une solution? –
En supposant OP veut soit 0, soit 1:
srand(time(NULL));
foo = rand() & 1;
Modifier inspiré par commentaire: Old rand()
implémentations ont un défaut - bits d'ordre inférieur avaient des périodes beaucoup plus courtes que bits d'ordre supérieur, donc l'utilisation de bits de poids faible pour de telles implémentations n'est pas bonne. Si vous connaissez votre implémentation rand()
souffre de cette faille, utiliser peu d'ordre supérieur, comme celui-ci:
foo = rand() >> (sizeof(int)*8-1)
en supposant des architectures régulières par octet 8 bits
man 3 drand48 est-exactement ce que vous avez demandé pour.
Le drand48() et erand48() fonctions retournent non-négatif, en double précision, les valeurs à virgule flottante, répartie uniformément sur l'intervalle [0,0, 1,0].
Ils se trouvent dans #include <stdlib.h>
sur les plateformes UNIX. Ils ne sont pas en C ANSI, donc, (par exemple) vous ne les trouverez pas sur Windows à moins que vous n'apportiez votre propre implémentation (par exemple, LibGW32C).
- 1. générateur de nombres aléatoires
- 2. Générateur de nombres aléatoires Crappy
- 3. comment un biais générateur de nombres aléatoires
- 4. générateur de nombres aléatoires singe test diehard
- 5. générateur de nombres aléatoires dev/random
- 6. générateur de nombres aléatoires en php
- 7. générateur de nombres aléatoires C de sans numéros répéter
- 8. Implémenter correctement le générateur de nombres aléatoires de C#
- 9. Comportement en ligne déroutant du générateur de nombres aléatoires (C++)
- 10. Générateur de nombres aléatoires en C# - valeurs uniques
- 11. Générateur de nombres aléatoires non biaisé utilisant un générateur biaisé
- 12. nombres aléatoires dans C#
- 13. Générateur de nombres aléatoires qui remplit un intervalle
- 14. génération de nombres aléatoires
- 15. Pourquoi utilisez-vous un générateur/extracteur de nombres aléatoires?
- 16. stimuler la bibliothèque de nombres aléatoires, utiliser le même générateur de nombres aléatoires pour les différents générateurs de variate
- 17. Un générateur de nombres aléatoires qui peut obtenir des nombres différents en <une seconde
- 18. tableau de nombres aléatoires
- 19. Probabilité de nombres aléatoires
- 20. Comment transmettre un générateur de nombres aléatoires C++ 11 à une fonction?
- 21. Combinaison de générateurs de nombres aléatoires
- 22. nombres entiers aléatoires ifstream?
- 23. Générateur de nombres aléatoires qui produit une distribution de loi de puissance?
- 24. nombres aléatoires dans java
- 25. affichant des nombres aléatoires
- 26. Problèmes avec l'ensemencement d'un générateur de nombres pseudo-aléatoires plus d'une fois?
- 27. Générateur de nombres aléatoires avec des probabilités plus élevées de donner de faibles valeurs?
- 28. Est-ce que Ruby a une classe de générateur de nombres aléatoires?
- 29. problème en génération de nombres aléatoires
- 30. Générer des nombres aléatoires de -n à n dans C
Vraiment aléatoire ou pseudo-aléatoire? – tvanfosson
Quelle est la différence? – tm1
@ tm1 - Les nombres pseudo-aléatoires ne font qu'approcher les propriétés des nombres aléatoires et ne conviendront pas nécessairement aux applications qui requièrent un réel caractère aléatoire, comme la cryptographie. Voir http://en.wikipedia.org/wiki/Pseudorandom_number_generator pour une explication. – tvanfosson