Anterior: , Subir: Funciones matemáticas   [Índice general][Índice]

10.6 Números aleatorios

Función: make_random_state (n)
Función: make_random_state (s)
Función: make_random_state (true)
Función: make_random_state (false)

Un objeto de estado aleatorio representa el estado del generador de números aleatorios. El estado consiste en 627 cadenas binarias de 32 bits.

La llamada make_random_state (n) devuelve un nuevo objeto de estado aleatorio creado a partir de una semilla entera igual a n módulo 2^32. El argumento n puede ser negativo.

La llamada make_random_state (s) devuelve una copia del estado aleatorio s.

La llamada make_random_state (true) devuelve un nuevo objeto de estado aleatorio, cuya semilla se genera a partir de la hora actual del reloj del sistema como semilla.

La llamada make_random_state (false) devuelve una copia del estado actual del generador de números aleatorios.

Función: set_random_state (s)

Establece s como estado del generador de números aleatorios.

La función set_random_state devuelve done en todo caso.

Función: random (x)

Devuelve un número seudoaleatorio. Si x es un entero, random (x) devuelve un entero entre 0 y x - 1, ambos inclusive. Si x es un decimal en punto flotante, random (x) devuelve un decimal no negativo en punto flotante menor que x. La función random emite un mensaje de error si x no es ni entero ni de punto flotante, o si x no es positivo.

Las funciones make_random_state y set_random_state permiten controlar el estado del generador de números aleatorios.

El generador de números aleatorios de Maxima implementa el algoritmo de Mersenne twister MT 19937.

Ejemplos:

(%i1) s1: make_random_state (654321)$
(%i2) set_random_state (s1);
(%o2)                         done
(%i3) random (1000);
(%o3)                          768
(%i4) random (9573684);
(%o4)                        7657880
(%i5) random (2^75);
(%o5)                11804491615036831636390
(%i6) s2: make_random_state (false)$
(%i7) random (1.0);
(%o7)                   .2310127244107132
(%i8) random (10.0);
(%o8)                   4.394553645870825
(%i9) random (100.0);
(%o9)                   32.28666704056853
(%i10) set_random_state (s2);
(%o10)                        done
(%i11) random (1.0);
(%o11)                  .2310127244107132
(%i12) random (10.0);
(%o12)                  4.394553645870825
(%i13) random (100.0);
(%o13)                  32.28666704056853

Anterior: , Subir: Funciones matemáticas   [Índice general][Índice]