Las aventuras de Python en el país de los números aleatorios (y pseudoaleatorios)

By Ariel Ortiz

Elevator Pitch

El matemático norteamericano Robert Coveyou afirmó que “la generación de números aleatorios es demasiado importante como para dejarla al azar”. En esta plática analizaremos las diversas opciones disponibles en Python para que nuestros programas puedan utilizar números aleatorios y pseudoaleatorios.

Description

Los números aleatorios tienen un rol fundamental en varios tipos de aplicaciones computacionales, como por ejemplo: juegos, criptografía, simuladores, muestreos estadísticos y software de producción artística.

En esta plática se discutirán los aspectos principales sobre la teoría de la generación de números aleatorios, así como las ventajas y limitaciones que tienen las computadoras en este respecto. Posteriormente, se presentarán diferentes técnicas que pueden ser utilizadas desde programas escritos en Python para obtener tanto números aleatorios como pseudoaleatorios:

  • Diseño y codificación en software de un PRNG (siglas en inglés de generador de números pseudoaleatorios).
  • Utilización del módulo random de la biblioteca estándar de Python y sus funciones más representativas.
  • Empleo de un TRNG (siglas en inglés de generador de números aleatorios reales) disponible desde hardware en los procesadores Intel x86 y ARM Cortex-M (utilizado en el pyboard).
  • Invocación de un API de HTTP (cortesía del sitio random.org) para obtener números aleatorios reales desde la nube.

Al finalizar esta plática los asistentes tendrán una mejor idea de las diferentes opciones disponibles en Python para generar números (pseudo-)aleatorios y también en qué circunstancias conviene utilizarlas.

Notes

Algunos datos relevantes sobre el presentador:

  • Es profesor de tiempo completo del Tecnológico de Monterrey, México, en donde imparte diversas materias de programación, tanto en idioma español como en inglés, para alumnos de la carrera de Ingeniero en Sistemas Computacionales.
  • Ha estado usando Python desde el año 2001, tanto para sus clases como para sus proyectos personales.
  • Es autor de EduPython, uno de los blogs más populares en español sobre el uso de Python en la educación.
  • Ha sido ponente de diferentes talleres, artículos y pósteres en los congresos del Grupo de Interés Especial de la ACM en Educación en Ciencia de la Computación (SIGCSE) desde el año 2001 (ver perfil de autor ACM).
  • En los últimos veinte años ha presentado pláticas en distintos congresos y conferencias en México y los Estados Unidos. Algunas de sus pláticas más recientes son: