Étant donné une séquence d'événements avec des probabilités comprises entre 0,0 et 1,0, générez et dérivez la probabilité que chaque combinaison se produise. Vous pouvez supposer qu'une séquence de nombres est fournie dans la construction de votre langue choisie.
Voici un exemple; vous pouvez supposer que la longueur des combinaisons de la séquence tient en mémoire:
{ 0.55, 0.67, 0.13 }
Le programme doit imprimer chaque combinaison et la probabilité associée que cette séquence se produise. Un 1 indique que l'événement dans cet index de la séquence d'entrée s'est produit et un 0 signifie que cet événement ne s'est pas produit. La sortie souhaitée est ci-dessous (je ne me soucie pas d'imprimer le travail, c'est juste à des fins d'information de l'algorithme):
[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
Ce problème est tangentiellement lié au calcul d'un "produit cartésien".
N'oubliez pas qu'il s'agit de code-golf, donc le code avec le moins d'octets gagne.
[0.129195, 0.019305, 0.262305, ..., 0.047905]
suffisant en sortie ou sont-ils [0,0,0], [0,0,1], ...
nécessaires?