¿Qué significa que una secuencia de enteros sea aleatoria?

El marco correcto para considerar la aleatoriedad es la teoría de la complejidad computacional. Es difícil dar una descripción detallada de cómo funciona eso porque hay algunas nociones bastante sutiles involucradas, pero una breve descripción de la teoría de la complejidad de Oded Goldreich ofrece un buen resumen de un párrafo:

El concepto de aleatoriedad ha desconcertado a los pensadores durante años. Su perspectiva puede ser descrita como ontológica: preguntaron “qué es aleatoriedad” y se preguntaron si existe (o es el mundo determinista). La perspectiva de la teoría de la complejidad es conductista: se basa en definir los objetos como equivalentes si no se pueden diferenciar por ningún procedimiento eficiente. Es decir, un lanzamiento de moneda es (definido como) “aleatorio” (incluso si uno cree que el universo es determinista) si no es factible predecir el resultado de la moneda. Del mismo modo, una cadena (o una distribución de cadenas) es “aleatoria” si no es factible distinguirla de la distribución uniforme (independientemente de si se puede generar la última o no). Curiosamente, la aleatoriedad (o más bien la pseudoaleatoriedad) definida de esta manera es expandible de manera eficiente; es decir, bajo una suposición de complejidad razonable (que se analizará más adelante), las cadenas pseudoaleatorias cortas se pueden expandir de forma determinista en cadenas pseudoaleatorias largas. De hecho, resulta que la aleatoriedad está íntimamente relacionada con la intratabilidad. En primer lugar, tenga en cuenta que la definición misma de pseudoaleatoriedad se refiere a la intratabilidad (es decir, la imposibilidad de distinguir un objeto de pseudoaleatoriedad de un objeto distribuido uniformemente). En segundo lugar, como se indicó anteriormente, una suposición de complejidad que se refiere a la existencia de funciones que son fáciles de evaluar pero difíciles de invertir (llamadas funciones unidireccionales ) implica la existencia de programas deterministas (llamados generadores pseudoaleatorios ) que extienden las semillas aleatorias cortas en largas Secuencias pseudoaleatorias. De hecho, resulta que la existencia de generadores pseudoaleatorios es equivalente a la existencia de funciones unidireccionales.

Esta perspectiva conductista, en la que caracterizamos un objeto al observar su salida, es (al menos en mi opinión) una de las ideas más importantes de la informática.

Un verdadero flujo aleatorio de enteros significa que es teóricamente incompresible, por lo tanto, es imposible describir matemáticamente un conjunto de enteros con menos información que los datos reales toman. Por supuesto, esto significa que la entropía debe ser al menos máxima, lo que significa que el flujo de datos se codifica de manera eficiente (por ejemplo, la codificación de Huffman).

Un buen ejemplo de datos compresibles serían las ondas de sonido, que tienden a generar una función sinusoidal, que se describe matemáticamente fácilmente utilizando las transformadas de Fourier. Parecen ser aleatorios al principio, pero no lo son.

Parece que no hay una respuesta definitiva a esa pregunta.

Knuth ha incluido una pieza muy interesante en The Art of Computer Programming (“¿Qué es una secuencia aleatoria?”, Volumen 2, capítulo 3, sección 5).

Para una discusión interesante, también recomiendo este artículo más reciente: ¿Qué es una secuencia aleatoria?