¿Cómo puedo generar un número aleatorio entre 0 y 1?c - generador de números aleatorios
Respuesta
Puede generar un número pseudoaleatorio usando stdlib.h. Sólo tiene que incluir stdlib, a continuación, llamar
double random_number = rand()/(double)RAND_MAX;
Como referencia, esto dará valores en [0.0, 1.0] es decir, que incluyen tanto 0.0 como 1.0. –
Y lo más importante, lo más probable es que no sea justo (!) Hay muchas implementaciones donde el conjunto [0.0, 1.0] contiene más de RAND_MAX elementos. (_En C, el conjunto [0.0, 1.0] es un conjunto finito contable_) – MSalters
@MSalters, ¿eso es un problema interesante, cualquier idea sobre una solución? –
Suponiendo PO quiere 0 o 1:
srand(time(NULL));
foo = rand() & 1;
Editar inspirado por el comentario: viejos rand()
implementaciones tenían un defecto - bits de orden inferior tuvieron períodos mucho más cortos que bits de orden superior por lo que el uso del bit de orden inferior para tales implementaciones no es bueno. Si sabe que su aplicación rand()
adolece de este defecto, utilizar bit de orden superior, como esto:
foo = rand() >> (sizeof(int)*8-1)
asumiendo regulares arquitecturas de 8 bits por byte
man 3 drand48 es exactamente lo que pidió para.
El drand48() y erand48() funciones devuelven no negativo, de doble precisión, los valores de punto flotante, distribuida de manera uniforme en el intervalo [0,0, 1,0].
Se encuentran en #include <stdlib.h>
en plataformas UNIX. Sin embargo, no están en ANSI C, por lo que (por ejemplo) no los encontrará en Windows a menos que traiga su propia implementación (por ejemplo, LibGW32C).
- 1. Crappy generador de números aleatorios
- 2. Generador de números aleatorios sesgado
- 3. Boost generador de números aleatorios
- 4. Generador de números aleatorios no repetitivo
- 5. Generador de números aleatorios de Gauss
- 6. Generador de números aleatorios de probabilidad
- 7. Generador de números aleatorios en CUDA
- 8. C# Generador de números aleatorios atorado en un ciclo
- 9. Generador de números aleatorios en C# - valores únicos
- 10. Implementando el generador de números aleatorios Box-Mueller en C#
- 11. Números aleatorios usando C#
- 12. Números aleatorios en C
- 13. generador de números aleatorios uniforme a prueba de hilos
- 14. Modificar el rango de un generador de números aleatorios uniforme
- 15. En Xorshift de números aleatorios algoritmo generador de
- 16. Pseudo generador de números aleatorios con densidad fija de 1s
- 17. Cómo crear números aleatorios únicos de un generador aleatorio dado
- 18. Implementación no uniforme del generador de números aleatorios?
- 19. Generador de números aleatorios imparcial utilizando uno sesgado
- 20. Generador de números aleatorios que genera enteros para Java
- 21. C#/XNA pseudo-creación de números aleatorios
- 22. Cómo obtener números aleatorios con el generador equivocado
- 23. impulsar la biblioteca de números aleatorios, el uso mismo generador de números aleatorios para diferentes generadores variate
- 24. especial de números aleatorios
- 25. Números aleatorios de la distribución Beta, C++
- 26. La generación de números aleatorios en C
- 27. Generador de objetos aleatorios JSON
- 28. Gran generación de números aleatorios
- 29. ¿Cómo paso un generador de números aleatorios C++ 11 a una función?
- 30. Averigüe con qué se sembró un generador de números aleatorios en C++
¿Verdaderamente aleatorio o pseudoaleatorio? – tvanfosson
¿cuál es la diferencia? – tm1
@ tm1: los números pseudoaleatorios solo se aproximan a las propiedades de los números aleatorios y no serán necesariamente adecuados para las aplicaciones que requieren aleatoriedad real, como la criptografía. Consulte http://en.wikipedia.org/wiki/Pseudorandom_number_generator para obtener una explicación. – tvanfosson