rand_seed()

rand_seed(<valor numérico>)

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.

Programa ejemplo:
PROGRAM ejemplo_rand_seed;

PRIVATE
    tabla[15];
    contador;

BEGIN
    write (0, 0, 184, 0, "Pulse [ENTER] para introducir 1234 como semilla.");
    write (0, 0, 192, 0, "Pulse [ESPACIO] para hallar valores aleatorios.");
    FROM contador=0 TO 15;
        write_int(0, 0, contador*10, 0, offset tabla[contador]);
    END
    LOOP
        IF (scan_code==_space)
            FROM contador=0 TO 15;
                tabla[contador] = rand(-100, 100);
            END
        END
        IF (scan_code==_enter)

            rand_seed(1234); // Se introduce semilla para aleatorios.

        END
        FRAME;
    END
END


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()