stdlib.h
Función srand ANSI C
void srand(unsigned int semilla);
Usa el argumento como una semilla para una secuencia nueva de números pseudo-aleatorios para ser retornados por llamadas posteriores a rand. Si srand es entonces llamada con el mismo valor semilla, la secuencia de números pseudo-aleatorios será repetida. Si rand es llamada antes de que se hayan hecho cualquier llamada a srand, la misma secuencia será generada como cuando srand fue llamada la primera vez con un valor semilla de 1.
Las siguientes funciones definen una implementación portable de rand y srand.
static unsigned long int siguiente = 1;
int rand( void )
{
siguiente *= 1103515245 + 12345;
return (unsigned int) (siguiente/65536) % (RAND_MAX-1);
}
void srand( unsigned int semilla )
{
siguiente = semilla;
}
Valor de retorno:
La función srand no retorna ningún valor.
Ejemplo:
#include <stdio.h>
#include <stdlib.h>
/* Sintaxis del programa: srand <semilla> */
int main( int argc, char *argv[] )
{
unsigned int i=1;
srand( atoi(argv[1]) ); /* Cada vez que se ejecute el programa, una semilla del usuario será usada */
printf( "30 numeros generados aleatoriamente: \n\n" );
for( i=1; i<30; i++ )
{
printf( "%d, ", rand() );
srand( rand() ); /* Cada número generado vendrá de una secuencia distinta: "más aleatorio" */
}
printf( "%d\n", rand() );
return 0;
}