Cuestión de Azar

| | Comentarios (0) | TrackBacks (0)

"The generation of random numbers is too important
to be left to chance."

..Robert R. Coveyou, Oak Ridge National Laboratory

"Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin."

.. John Von Neumann

Hay sorteos que no pasarían el escrutinio de expertos [1]. La verdad es que hay casos en que la forma en que se realiza un sorteo no es algo tan grave, pero en otros casos el asunto se torna delicado. Por ejemplo, muchos jóvenes norteamericanos impugnaron la forma en que fueron elegidos ("sorteados") para ir a Vietnam durante 1969, pues consideraban que este mecanismo estaba viciado (ver).

Así que realizar un sorteo justo es algo que no debe ser dejado al azar.

No sé si han tenido la oportunidad de ver cómo se realizan los sorteos de las loterias, pero el proceso es bastante riguroso y seguro, por ejemplo, la medición y peso de las bolitas debe cumplir una serie de estándares.

Pero, ¿podemos realizar sorteos usando el computador como generador de números aleatorios?

La gran característica de los números aleatorios es que estos no sean predecibles, y por lo tanto, si desarrollamos un algoritmo para calcular números aleatorios estamos "cayendo en pecado", como dijo Von Neumann.

La función rand(), o random() que encontramos en varios lenguajes de programación, y en algunas planillas de cálculo son útiles para aplicaciones simples, o para algunos videos juegos, pero no resisten un análisis estadistico serio. Estos generadores de números aleatorios tienden a repetir secuencias después de unos pocos miles de "ciclos", es por eso que los jugadores de video juegos descubren con el tiempo "patrones" que les permiten "dar vuelta" los juegos después de un tiempo.

dilbertrandom.gif

Por esto que debemos recurrir a mejores métodos para poder generar verdaderos números aleatorios.
Normalmente estos métodos utilizan alguna interfaz analógica a un instrumento que mide un fenómeno físico. Hasta ahora los fenómenos físicos son aleatorios, por ejemplo, el decaimiento de una partícula radiactiva, el ruido termal, o incluso el retraso del reloj.

Dado que conseguir una fuente externa analógica es complicado se han desarrollados mecanismos que permiten usar los dispositivos disponibles en el computador.
Por ejemplo, se puede contar el tiempo medio que toman los usuarios al tipear cada tecla, o por ejemplo capturar una serie de posiciones del mouse.
El "seudo dispositivo" /dev/random de Linux, y la función RtlGenRandom Windows están basadas en estas técnicas para generar números seudo aleatorios.

Sin embargo hay mejores formas de lograr números aleatorios de verdad, y sin necesidad de invertir en hardware especial para medir fenómenos físicos aleatorios.

El servicio random.org, mantenido por Mads Haahr, es muy bueno, no sólo porque ha sido analizado estadísticamente de acuerdo a las recomendaciones del NIST, sino que es un servicio que lleva "varios años en el mercado", utiliza una fuente física natural (basada en el ruido atmosférico), y tiene una interfaz web interactiva y una API HTTP para invocar el servicio.
(¿Mencioné que además el servicio es gratuito?)

Lo reitero, generar números aleatorios no es cuestión de azar...

[1] Afortunadamente el sorteo mencionado cuenta con el mejor notario posible (un gato) ;)

0 TrackBacks

Abajo se encuentran listados enlaces a este artículo: Cuestión de Azar.

URL de TrackBack URL para esta entrada: http://www.lnds.net/cgi-bin/mt-tb.cgi/1923

Escribir un comentario

(Si no dejó aquí ningún comentario anteriormente, quizás necesite aprobación por parte del dueño del sitio, antes de que el comentario aparezca. Hasta entonces, no se mostrará en la entrada. Gracias por su paciencia).

Introduzca los caracteres que ve en la imagen de arriba.

Sobre esta entrada

Esta página contiene una sola entrada realizada por ediaz y publicada el 22 de Octubre 2007 9:31 PM.

Eclesiastés 1:9-11 es la entrada anterior en este blog.

Ricardo Galli cierra su blog es la entrada siguiente en este blog.

Encontrará los contenidos recientes en la página principal. Consulte los archivos para ver todos los contenidos.

Technorati

Technorati search

» Blogs que enlazan aquí

Creative Commons License
Este weblog está licenciado bajo una Licencia Creative Commons.

BloGalaxia website stats
Google
Encuentro Blogpower 2008