lunes, 1 de julio de 2013

Generación de números pseudoaleatorios

Diferencia entre números aleatorios y pseudoaleatorios

NÚMEROS ALEATORIOS.
Los números aleatorios tienen la propiedad de ser obtenidos al azar, es decir, son resultado de un proceso en el cual su resultado no es predecible ya que todo número tiene la misma probabilidad de ser elegido y la elección de uno no depende de otro.

NÚMEROS PSEUDOALEATORIOS.
Los números pseudoaleatorios son números generados en un proceso que parece producir números al azar, pero no lo hace realmente, de aquí el prefijo pseudo que quiere decir falso, ya que su generación parte de algoritmos determinísticos, lo cual quiere decir que obtendremos siempre el mismo resultado bajo las mismas condiciones iniciales. Estas condiciones se refieren a varios parámetros de arranque, siendo el valor inicial, también llamado semilla, el denominador común de todos los algoritmos.

OBJETIVO.
Se realizaron pruebas para ver que tan "aleatorios" son los números pseudoaleatorios generados por varios lenguajes de programación, los lenguajes utilizados son: C, Java, Python y Ruby.

CÓDIGO.
C

JAVA

PYTHON

RUBY

RESULTADOS.
A continuación se mostraran unas tablas con los resultados y los promedios de las 10 corridas realizadas con diferentes lenguajes de programación,generando 10,000 números pseudoaleatorios en cada corrida.


CONCLUSIÓN.
Como se ve en el gráfico anterior Ruby es el lenguaje que genero los números que están más cerca de ser aleatorios, ya que el cero y el uno tienen casi la misma probabilidad de salir en la generación de un número. Seguido de Python, Java y por ultimo C.

REFERENCIAS.
Números pseudoaleatorios. http://www.slideshare.net/albertojeca/numeros-pseudoaleatorios-y-variables-aleatorias

1 comentario:

  1. Lo que examinaste es más bien la uniformidad y no tanto la aleatoriedad. Imprimiendo por turnos uno y cero saldría perfecto en tu estudio, pero no es aleatorio para nada ;) 4 pts.

    ResponderEliminar