Programa generador de números pseudoaleatorios en Java
Un GNA (Generador de números aleatorios) es un programa que crea números de de forma aleatoria. En informática comúnmente se usan algoritmos pseudoaleatorios, es decir, programas que a partir de una semilla (un número), crea una secuencia de números.
Posiblemente, el algoritmo de números pseudoaleatorios más extendido sea el Congruencial. En este artículo veremos una modificación del mismo. Se generarán 3 congruenciales. El primero servirá para decidir cual de los dos siguientes usar.
Existen varias pruebas o tests para determinar si un algoritmo es pseudoaleatorio. En nuestro ejemplo se han pasado los tests de Frecuencias, Serie, GAP, Yule-Walker, Distancias, Autocorrelación (casi todas las celdas), Kolmogorov, Maxmin-up y Maxmin-down. Por lo que podemos afirmar que es un algoritmo aceptablemente bueno.
A continuación se muestra un conjunto de 5 semillas que pasaron los tests:
Este programa genera una secuencia de 3000 números pseudoaleatorios. Para obtener distintas tiras de números basta con cambiar las semillas que se han especificado anteriormente.
Si deseamos usar este algoritmo en otros programas podemos utilizar la función .next() que nos devuelve el siguiente número de la tira generada.