Numeros aleatorios
Bueno necesito hacer por ejemplo un programa que me saque mil numeros aleatorios del 1 al 1000
Para ello hago el siguiente programa en C;
for (i=0;i<1000;i++){
srand(time(NULL));
x=(rand()%1000)+1;
printf("%d",x);
}
y el resultado es algo así:
651
651
651
651
652
652
652
653
653
....
....
.....hasta mil numeros
y es que en C la funcion rand para sacar el numero aleatorio se basa en el reloj, y por eso pasa esto.
¿Hay alguna manera de evitar esto y sacar numeros mas diferenciados?
Gracias
Para ello hago el siguiente programa en C;
for (i=0;i<1000;i++){
srand(time(NULL));
x=(rand()%1000)+1;
printf("%d",x);
}
y el resultado es algo así:
651
651
651
651
652
652
652
653
653
....
....
.....hasta mil numeros
y es que en C la funcion rand para sacar el numero aleatorio se basa en el reloj, y por eso pasa esto.
¿Hay alguna manera de evitar esto y sacar numeros mas diferenciados?
Gracias
Mira, para un numero aleatorio, primero, generas un simple numero aleatorio, solo uno, de tres o mas cifras, el cual lo elavas al cuadrado, y el resultado, tomas la cadena de numeros, y los tres digitos centrales los elevas al cuadrado, y asi sucesivamente, hasta llegar a la cantidad deseada de numeros.
Asi generas numeros aleatorios a partir de una semilla desconocida. :)
Asi generas numeros aleatorios a partir de una semilla desconocida. :)