21/10/2010, 10:18
|
| | Fecha de Ingreso: septiembre-2005
Mensajes: 30
Antigüedad: 19 años, 2 meses Puntos: 0 | |
Firefox y Math.random() Hola
estoy realizando un experimento cientifico online. Lo han pasado cerca de 9000 personas. Al comenzar utilizo una rutina en JS para asignar "al azar" a la persona a un grupo de control o a uno experimental.
var asignar, control;
asignar = parseInt(Math.random()*10);
formulario.asignacion.value=asignar;
if (asignar <= 4)
{control = true;
return control;}
else
{control =false;
return control;}
Me encuentro que para ordenadores que usan firefox bajo windows, la distribución de los números que genera Math.random no pasa una prueba de aleatoriedad, existiendo un sesgo hacia el valor "0", cosa que no ocurre con Explorer.
ASIGNACION
Frecuencia Porcentaje
Válidos 0 182 12,1
1 152 10,1
2 154 10,2
3 160 10,6
4 159 10,6
5 149 9,9
6 143 9,5
7 150 10,0
8 128 8,5
9 129 8,6
Total 1506 100,0
Si ejecuto la rutina 10 millones de veces seguidas con Firefox bajo Windows, los resultados generados son numeros aleatorios. Así que el problema puede estar en que al iniciar firefox y ejecutar el Math.random() por primera vez, y sólo la primera vez y no las siguientes, sea algo más probable encontrase con un 0,0... (al multiplicarlo por 10 y obtener la parte entera daria un "0") que otros valores.
¿Dónde podría encontrar documentación sobr este tema?. Se que para generar numeros pseudoaleatorios se utiliza una semilla inicial y luego unos calculos matematicos que generan como resultado numeros pseudoaletorios. Quizás el primer numero generado (cuando se usa Firefox bajo Windows) dependa directamente de la semilla y ésta presente un sesgo en el sentido que he indicado antes.
Gracias y perdonad la longitud del texto.
Roge |