lunes, 19 de octubre de 2015

Desarrollo del Proyecto - OBJETIVOS E HIPÓTESIS



Como planteamos antes, los generadores de "números aleatorios", están basados en algoritmos determinísticos, por lo tanto los valores que generan no son números precisamente aleatorios sino pseudoaleatorios. 
Imagen 1: Generadores de números pseudoaleatorios
imagen extraida de http://goo.gl/tdttzZ

Para determinar la calidad de algunos generadores de números paseudoaleatorios, realizaremos una investigación la cual fundamentaremos estadísticamente. Donde el objetivo de esta investigación, es justamente determinar cuál de los siguientes generadores arrojan números "más aleatorios", o en términos estadísticos cuál de ellos se ajusta a la Distribución Uniforme (0,1). Elegimos los software R, GeoGebra, DevC++, porque son programas con los que trabajamos en distintas materias del Profesorado en Matemática, al igual que la calculadora CASIO fx-570ES PLUS.

Para ello recolectamos 100 datos con cada uno de los software y la misma cantidad de números con la calculadora, de la siguiente manera:

  • Descargamos el software R versión 3.2.1 desde https://www.r-project.org/ e instalamos el paquete Rcmdr. Para generar los 100 números pseudoaleatorios en R Commander version 2.2-0, seguimos la siguiente secuencia Distribuciones → Distribuciones Continuas → Distribución Uniforme → Muestra de una distribución uniforme... y luego completamos los campos con 0 el mínimo, 1 el máximo, número de filas 100 y número de columnas 1, damos aceptar y conseguimos el conjunto de datos que queríamos.

  • Para generar los números pseudoaleadorios con GeoGebra, primero obtuvimos la versión 5.0.155.0-3D, desde http://www.geogebra.org/, luego ingresamos el comando UniformeAleatorio[ <Mínimo>, <Máximo>, <Número de muestras> ] en el cuadro de entrada, consiguiendo así la lista de números pseudoaleatorios.

#include <stdlib.h>
#include <stdio.h>
#include <time.h> int main() { int i; time_t tiempo = time(0); struct tm *tlocal = localtime(&tiempo); srand(tlocal->tm_sec+tlocal->tm_min+tlocal->tm_hour+tlocal->tm_year+tlocal->tm_mon+tlocal->tm_mday); for(i=0; i<100; i++) { printf("%d\t", rand()); } system("PAUSE"); return 0; }

Compilamos y ejecutamos para obtener los 100 números pseudoaleatorios. Pero el software nos devuelve números entre el 0 y 32767, entonces primero dividimos esos resultados por 100000 para que nos queden valores entre 0 y 1, y luego le aplicamos una transformación lineal que se corresponda el 0 con el 0 y el 0.32767 con el 1, obteniendo finalmente los datos que buscabamos.



  • En la calculadora CASIO fx-570ES PLUS generamos uno a uno los 100 números con las teclas shift → · (Ran#) 

Cabe destacar que los software fueron ejecutados en una notebook Lenovo modelo B590 con procesador Intel Pentium CPU 2020M, 2.40GHz, disco rígido de 500Gb, memoria Ram de 2Gb y sistema operativo Windows 7 Ultimate de 32 bits.

Los datos obtenidos serán analizados, comparándolos con la distribución Uniforme (0,1) a partir de los gráficos, como histogramas y boxplot, y medidas de tendencia central y dispersión: la media y el desvío, y parámetros de forma: coeficiente de asimetría y de curtosis. Creemos que como R es más específico en el ámbito estadístico,  nos arrojará números que se ajustan más a una distribución uniforme, es decir “más aleatorios” que con el resto de los generadores.

1 comentario:

  1. Muy bueno chicas! qué interesantísimo!
    ¿Ya tienen alguna conclusión para contarnos desde el análisis descriptivo?

    ResponderBorrar