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:
- Los riesgos de la herencia: por qué es preferible usar composición. PyCon Latam 2019. 30 de agosto, 2019. Puerto Vallarta, Jalisco, México.
- The Perils of Inheritance: Why We Should Prefer Composition. PyCon USA 2019. May 4, 2019. Cleveland, Ohio, USA.
- Design Patterns in Python for the Untrained Eye. PyCon USA 2019. May 1, 2019. Cleveland, Ohio, USA.
- The Dawn of Lisp, or How to Write Eval and Apply in Clojure. Clojure/conj 2017. October 13, 2017. Baltimore, Maryland, USA.