# Sobre el comando random

## El comando random genera números pseudoaleatorios

Vamos a generar hasta 10 decimales menores que 100 con el comando
random(100.0). Por economía de ejecución los ponemos todos en la misma celda

random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);

Como se aprecia, cada vez produce un resultado diferente que es un decimal positivo
estrictamente menor que 100. 
Aparente la aleatoriedad está presente. Pero en realidad es determinista: 
se trata sólo de pseudoaleatorios.

Para entender mejor el significado de lo anterior, llegados a este punto,
desde el menú Maxima, proceda,  sin borrar nada, a reiniciar Maxima y pase a
ejecutar la celda de la sección siguiente. 

## Que están predeterminados

Si ya ha reiniciado Maxima vuelva a ejecutar el mismo código que antes

random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);

Pues sí, son exactamente los mismos resultados: están predeterminados en la máquina.

Son pseudoaleatorios generados a partir de una "semilla inicial",
que puede ser cambiada. Véamoslo.

Llegados a este punto, sin borrar nada, volvemos a reiniciar Maxima desde los menús
antes de pasar a la sección siguiente.

## Generar semilla "aleatoria" inicial 
utilizando el reloj de la máquina

make_random_state(true)$
set_random_state(%);

random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);

Volvemos a reiniciar Maxima desde los menús y ejecutamos de nuevo el mismo código.

make_random_state(true)$
set_random_state(%);

random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);
random(100.0);