Bueno, espero que no hayas pensado,
Kelpie, que abandoné el post. He estado dándole vueltas, me cuesta bastante ver el concepto.
Pero ahora sí creo que lo entiendo
Entonces lo que hay que hacer es estudiar lo que va a pasar en todas y cada una de las iteraciones (si hacemos 10 000, hay que estudiar qué pasa en los 10 000 casos).
Cita:
Iniciado por Kelpie En resumen y para cada llamada, hay un 90% de probabilidades de que no se ejecute el bucle
un 9% de que se ejecute y haga una iteración
un 0.9% de que haga dos iteraciones
un 0.09% de que haga tres iteraciones...
La fórmula no se cómo ponértela sin poner una imágen. Sería:
"Sumatorio entre i=0 e i=100 de: probabilidad por 10 elevado a menos i por i"
Veo bien los porcentajes de probabilidad que hay en cada caso. Pero entonces ¿con la fórmula esa lo que hallamos es la suma de las probabilidades de que haga n iteraciones? El resultado para
probabilidad =
0.90 sería
0.11111... ¿Por qué a mí en la primera tabla que posteé ese valor coincide con su complementario
0.10? Creo que es porque has dicho que
hay un 90% de probabilidades de que no se ejecute el bucle y en realidad el código hace referencia a: hay un 90% de probabilidades de que
sí se ejecute el bucle.
Pero con el script éste he hecho la tabla de datos..
Código PHP:
for(var probabilidad=0; probabilidad<=1; probabilidad+=0.1 ) {
// "Sumatorio entre i=0 e i=100 de: probabilidad por 10 elevado a menos i por i"
var resultado = 0;
for(var i=0; i<10; i++) {
resultado += probabilidad * Math.pow(10,-i) * i;
}
document.write("Para una probabilidad de "+probabilidad.toFixed(2)+" se producirán "+resultado.toFixed(6)+" iteraciones de media.<br/>");
}
Cita: Para una probabilidad de 0.00 se producirán 0.000000 iteraciones de media.
Para una probabilidad de 0.10 se producirán 0.012346 iteraciones de media.
Para una probabilidad de 0.20 se producirán 0.024691 iteraciones de media.
Para una probabilidad de 0.30 se producirán 0.037037 iteraciones de media.
Para una probabilidad de 0.40 se producirán 0.049383 iteraciones de media.
Para una probabilidad de 0.50 se producirán 0.061728 iteraciones de media.
Para una probabilidad de 0.60 se producirán 0.074074 iteraciones de media.
Para una probabilidad de 0.70 se producirán 0.086420 iteraciones de media.
Para una probabilidad de 0.80 se producirán 0.098765 iteraciones de media.
Para una probabilidad de 0.90 se producirán 0.111111 iteraciones de media.
Para una probabilidad de 1.00 se producirán 0.123457 iteraciones de media.
Yo creo que hay algo mal...
La tabla sería entonces así si no me he equivocado y he cogido el concepto bien (10 000 iteraciones):
Hay un 90% de probabilidades de que sí se ejecute el bucle, un 10% de que no. -> En 1 000 iteraciones no se ejecutará.
Vamos a ver qué pasa con las 9 000 iteraciones restantes por estudiar:
Un 90% de 9 000 (8100, 81% del total) de que se ejecute y haga una iteración -> En 8100 iteraciones haría una iteración.
Nos quedan 9000 - 8100 = 900 por estudiar:
Un 90% de 900 (810, 8.1% del total) de que se ejecute y haga 2 iteraciones -> En 810 iteraciones haría 2 iteraciones.
Nos quedan 90 por estudiar:
En 81 iteraciones (0.81%) haría 3 iteraciones
Nos quedan 9 iteraciones.
En 8.1(0.081%) iteraciones haría 4 iteraciones
en 0.81(0.0081%) haría 5
en 0.081(0.00081%) haría 6
...
En resumen:
Hay un 10% de probabilidades de que no se ejecute.
Un 81% de que se ejecute y haga una iteración
Un 8.1% de que haga dos
Un 0.81% de que haga tres
...
Y todo eso sumado 10% + 81% + 8.1% + 0.81% + 0.081% + ... = 100%
Como en tu ejemplo.
Aquí me vuelvo a perder entonces, porque no comprendo la fórmula. ¿Cómo deduzco el 9.1932 para 0.90 de mi tabla desde aquí?
Jo, ya siento ser tan duro, pero es que no son fáciles para mi estos conceptos...
Un saludo y espero que no tardes tanto como yo en responder el post. Lo siento!