Hola:
Se me ha ocurrido este código:
Código PHP:
for( var i=Math.random(); i<prob; i=Math.random() ) {
}
Como podéis ver, Se producen iteraciones mientras el número generado esté por debajo de
prob. Ésto, si no me equivoco, quiere decir que se seguirá iterando con una probabilidad de
prob. Es decir, si
prob=0.95 se seguirá iterando si un número aleatorio entre 0 y 1 es menor que 0.95, osea, con una probabilidad del 0.95.
Entonces quería ver cuantas iteraciones haría de media una probabilidad del 0.95, hice esta función:
Código PHP:
function iterar(prob) {
for( var i=Math.random(), cont=0; i<prob; i=Math.random() ) {
//document.write("Una iteración ("+i+") <br/>");
cont++;
}
return cont;
}
Y este simple código para llamar a
iterar() nIteraciones veces. Almaceno en
iteraciones cuántas veces se itera cada vez, y luego hago la media entre todos los elementos de
iteraciones.
Código PHP:
var iteraciones = [];
var nIteraciones = 10000;
var prob = 0.95;
for(var i=0; i<nIteraciones; i++) {
iteraciones.push( iterar(prob) );
}
document.write("Media de iteraciones "+(eval(iteraciones.join("+"))/nIteraciones) + ".");
La salida para este código es, por ejemplo (variará por ser el número de iteraciones aleatorio):
Cita: Media de iteraciones 18.8814.
Lo que me llama la atención es que este número siempre suele estar entre 18.5 y 19.3 o así.
No soy muy ducho en las matemáticas. ¿Cómo puedo llegar a esos valores de 18.5 y 19.3 sabida la probabilidad de 0.95? ¿Cómo se puede saber también al revés? Creo que estoy pidiéndo una fórmula matemática...
Dejo una tabla de datos, asombroso cómo crece al final. También es curioso la media de iteraciones con 0.5 de probabilidad: está muy cerca de la unidad:
Cita: Media de iteraciones con probabilidad 0.00 en 10000 iteraciones = 0.
Media de iteraciones con probabilidad 0.03 en 10000 iteraciones = 0.0304.
Media de iteraciones con probabilidad 0.05 en 10000 iteraciones = 0.0574.
Media de iteraciones con probabilidad 0.08 en 10000 iteraciones = 0.0838.
Media de iteraciones con probabilidad 0.10 en 10000 iteraciones = 0.1149.
Media de iteraciones con probabilidad 0.13 en 10000 iteraciones = 0.1487.
Media de iteraciones con probabilidad 0.15 en 10000 iteraciones = 0.1854.
Media de iteraciones con probabilidad 0.18 en 10000 iteraciones = 0.2166.
Media de iteraciones con probabilidad 0.20 en 10000 iteraciones = 0.2615.
Media de iteraciones con probabilidad 0.22 en 10000 iteraciones = 0.2873.
Media de iteraciones con probabilidad 0.25 en 10000 iteraciones = 0.3318.
Media de iteraciones con probabilidad 0.27 en 10000 iteraciones = 0.3815.
Media de iteraciones con probabilidad 0.30 en 10000 iteraciones = 0.4323.
Media de iteraciones con probabilidad 0.33 en 10000 iteraciones = 0.4995.
Media de iteraciones con probabilidad 0.35 en 10000 iteraciones = 0.5442.
Media de iteraciones con probabilidad 0.38 en 10000 iteraciones = 0.6051.
Media de iteraciones con probabilidad 0.40 en 10000 iteraciones = 0.6778.
Media de iteraciones con probabilidad 0.43 en 10000 iteraciones = 0.7526.
Media de iteraciones con probabilidad 0.45 en 10000 iteraciones = 0.825.
Media de iteraciones con probabilidad 0.48 en 10000 iteraciones = 0.9412.
Media de iteraciones con probabilidad 0.50 en 10000 iteraciones = 1.0025.
Media de iteraciones con probabilidad 0.53 en 10000 iteraciones = 1.1115.
Media de iteraciones con probabilidad 0.55 en 10000 iteraciones = 1.2107.
Media de iteraciones con probabilidad 0.58 en 10000 iteraciones = 1.3876.
Media de iteraciones con probabilidad 0.60 en 10000 iteraciones = 1.5018.
Media de iteraciones con probabilidad 0.63 en 10000 iteraciones = 1.7111.
Media de iteraciones con probabilidad 0.65 en 10000 iteraciones = 1.8557.
Media de iteraciones con probabilidad 0.68 en 10000 iteraciones = 2.095.
Media de iteraciones con probabilidad 0.70 en 10000 iteraciones = 2.3204.
Media de iteraciones con probabilidad 0.73 en 10000 iteraciones = 2.7343.
Media de iteraciones con probabilidad 0.75 en 10000 iteraciones = 3.0131.
Media de iteraciones con probabilidad 0.78 en 10000 iteraciones = 3.4826.
Media de iteraciones con probabilidad 0.80 en 10000 iteraciones = 4.0523.
Media de iteraciones con probabilidad 0.83 en 10000 iteraciones = 4.8373.
Media de iteraciones con probabilidad 0.85 en 10000 iteraciones = 5.6319.
Media de iteraciones con probabilidad 0.88 en 10000 iteraciones = 7.382.
Media de iteraciones con probabilidad 0.90 en 10000 iteraciones = 9.1932.
Media de iteraciones con probabilidad 0.93 en 10000 iteraciones = 13.2168.
Media de iteraciones con probabilidad 0.95 en 10000 iteraciones = 19.2286.
Media de iteraciones con probabilidad 0.98 en 10000 iteraciones = 49.1258.
Un saludo.