Evitando la generación repetida de semillas usando srand ()

Tengo una situación típica en la que necesito generar un lote de números aleatorios. He utilizado un bucle que genera 100 números aleatorios en cada pase:

for(int i=0; i<npasses; i++) { srand(time(NULL)); //Initialize seed for(int j=0; j<100; j++) printf("%d ", rand()%10); printf("\n"); //New line after 100 numbers } 

Ahora, el bucle interno se ejecuta en menos de un milisegundo. Como resultado, no hay cambio en el valor del tiempo (). Esto reinicializa la semilla (srand ()) al mismo valor y mis números aleatorios son REPETIDOS ..

¿Alguien puede sugerir una solución / solución.

Establecer la semilla una vez, antes del bucle.

Manténgase fuera:

 srand(time(NULL)); //Initialize seed for(int i=0; i 

prueba esto

 srand(clock()); //Initialize seed 

Puedes usar el generador aleatorio para generar una nueva semilla.

Por ejemplo:

 srand((unsigned int)rand()); 

Y use srand(time(NULL)) solo una vez antes del bucle. Pero como se sugiere en otra respuesta, también podrías dejar a todo el srand dentro del bucle también.