politicas - cambiar ropa c&a
¿Por qué rand() siempre devuelve el mismo valor? (2)
Posible duplicado:
Generando números aleatorios en C
usando rand para generar un número aleatorio
Intento generar números aleatorios pero obtengo el número 41 constantemente. ¿Qué podría estar yendo tan mal en un fragmento tan simple?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a = rand();
printf("%d",a);
return 0;
}
Gracias por la ayuda.
Necesitas dar una semilla diferente, por ejemplo:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int a;
srand ( time(NULL) );
a = rand();
printf("%d",a);
return 0;
}
Necesitas sembrar el generador.
Esto es esperado. La razón es para la repetibilidad de los resultados. Supongamos que realiza algunas pruebas utilizando una secuencia aleatoria y sus pruebas fallan después de una cantidad de tiempo o iteraciones en particular. Si guarda la semilla, puede repetir la prueba para duplicar / depurar. Siembre con el tiempo actual de época en milisegundos y obtendrá randoms como espera (y guarde la semilla si cree que necesita repetir los resultados).