void rand_seed( int número )
Descripción:
Esta función establece una semilla para el generador de números aleatorios (los números que genera la función rand()).
Si se establece una semilla, que puede ser cualquier número entero dentro del rango (min_int ... max_int), todos los números que genere la función rand() serán los mismos en cada ejecución del programa. Es decir, tras establecerse una semilla de origen, la función rand() devolverá una serie de números predeterminada para dicha semilla.
MAIN_PROGRAM_CDIV PRIVATE int tabla[15], contador; BEGIN_PROGRAM set_gfx(GFX_AUTODETECT_WINDOWED); set_mode(m320x200); write (0, 0, 184, 0, "Pulse [ENTER] para introducir 1234 como semilla."); write (0, 0, 192, 0, "Pulse [ESPACIO] para hallar valores aleatorios."); for(contador=0;contador<15;contador++) write_int(0, 0, contador*10, 0, &tabla[contador]); LOOP{ if (scan_code==_space){ for(contador=0;contador<15;contador++) tabla[contador] = rand(-100, 100); } if (scan_code==_enter) rand_seed(1234); // Se introduce semilla para aleatorios. FRAME; } END_PROGRAM
En el ejemplo se crea una tabla con 16 datos (del 0 al 15). En cada iteración del bucle principal, cada vez que se pulse la barra espaciadora se rellenarán los datos con valores aleatorios entre -100 y 100 (elegidos con la función rand()).
Y cuando se pulse la tecla ENTER, entonces se definirá la semilla de los números aleatorios con la función rand_seed() como 1234. Se puede observar cómo cada vez que se pulsa la tecla ENTER, luego, al pulsar la barra espaciadora, siempre se obtiene la misma serie de números aleatorios (17, 94, -38, ...). Para cada semilla posible; ésta serie será diferente.
Ver: rand()