La función aleatoria en COBOL

El lenguaje de programación COBOL, uno de los más antiguos aún en uso regular, tiene un fuerte sesgo hacia las aplicaciones comerciales, como la contabilidad, la nómina y el control de inventario. Sin embargo, las versiones más nuevas de COBOL tienen funciones matemáticas sofisticadas, incluida una para generar números aleatorios. Aunque rara vez se usan para la contabilidad empresarial diaria, los números aleatorios ayudan a facilitar los cálculos estadísticos y ciertos tipos de técnicas de resolución de problemas numéricos.

Funciones

Las funciones matemáticas de COBOL son parte de la división de procedimientos del lenguaje, la sección del programa que consiste en declaraciones de procedimiento. Las funciones comienzan con la palabra reservada "función" seguida del nombre de la función, como "cos", "aleatorio" o "registro". Una función toma uno o más argumentos, realiza un proceso con ellos y devuelve un resultado al programa COBOL. Algunas funciones funcionan con números y variables numéricas, mientras que otras funcionan con datos de caracteres.

Aleatorio

La función aleatoria toma un argumento entero no negativo y devuelve un número decimal. El argumento entero es opcional. Es la semilla de un proceso matemático pseudoaleatorio que determina el primer número devuelto por la función. En los lenguajes informáticos, todos los procesos aleatorios son, de hecho, series largas y repetitivas de números que parecen aleatorios. Un proceso bien elegido se repite solo después de miles de millones de valores, por lo que es una fuente práctica de números aleatorios, incluso si no es teóricamente pura. Si proporciona un argumento a la función aleatoria, generará la misma secuencia de números. Sin el argumento, la función aleatoria genera el siguiente número en su secuencia.

Rango y Distribución

La función aleatoria en COBOL devuelve números decimales en un rango de cero a uno. Estadísticamente, los números aleatorios tienen una distribución rectangular, lo que significa que cada número tiene la misma probabilidad. Un gráfico de una larga serie de números aleatorios tendrá una línea relativamente plana que se extiende desde cero hasta casi uno. Esto contrasta con la distribución normal o gaussiana, que forma una curva en forma de campana.

Usar

Por sí mismos, los números decimales de funciones aleatorias no son muy útiles, pero si los multiplica por un factor de escala, crea un rango de números aleatorios adecuados para su aplicación. Por ejemplo, para obtener números enteros aleatorios entre uno y 52, usaría la siguiente instrucción COBOL:COMPUTE RANDOM-VALUE =FUNCTION RANDOM (1) * 52 + 1.

En el enunciado, la función aleatoria genera números mayores o iguales a cero y menores a uno. Multiplicar esto por 52 te da números entre cero y 51. Sumar uno te da el rango de uno a 52.