Dada una secuencia de eventos con probabilidades entre 0.0 y 1.0, generar y derivar la probabilidad de que ocurra cada combinación. Puede suponer que se proporciona una secuencia de números en cualquier construcción que proporcione su idioma elegido.
Aquí hay un ejemplo; puede suponer que la longitud de las combinaciones de la secuencia se ajusta a la memoria:
{ 0.55, 0.67, 0.13 }
El programa imprimirá cada combinación y la probabilidad asociada de que ocurra esa secuencia. Un 1 indicará que ocurrió el evento en ese índice de la secuencia de entrada y un 0 indicará que ese evento no ocurrió. El resultado deseado está debajo (no me importa imprimir el trabajo, eso es solo para fines informativos del algoritmo):
[0,0,0] = (1 - 0.55) * (1-0.67) * (1-0.13) = 0.129195
[0,0,1] = (1 - 0.55) * (1-0.67) * (0.13) = 0.019305
[0,1,0] = (1 - 0.55) * (0.67) * (1-0.13) = 0.262305
[0,1,1] = (1 - 0.55) * (0.67) * (0.13) = 0.039195
[1,0,0] = (0.55) * (1-0.67) * (1-0.13) = 0.157905
[1,0,1] = (0.55) * (1-0.67) * (0.13) = 0.023595
[1,1,0] = (0.55) * (0.67) * (1-0.13) = 0.320595
[1,1,1] = (0.55) * (0.67) * (0.13) = 0.047905
Este problema está relacionado tangencialmente con el cálculo de un "producto cartesiano".
Recuerde, este es el código golf, por lo que gana el código con el menor número de bytes.
[0.129195, 0.019305, 0.262305, ..., 0.047905]
Sería suficiente como salida o son los [0,0,0], [0,0,1], ...
necesarios?