Враховуючи послідовність подій з ймовірністю від 0,0 до 1,0, генеруйте та виводите ймовірність виникнення кожної комбінації. Ви можете припустити, що послідовність чисел надається будь-якою конструкцією, яку надає обрана вами мова.
Ось приклад; Ви можете припустити, що довжина комбінацій послідовностей вписується в пам'ять:
{ 0.55, 0.67, 0.13 }
Програма друкує кожну комбінацію та пов'язану з цим ймовірність виникнення цієї послідовності. A 1 позначає, що подія в цьому індексі вхідної послідовності сталася, а 0 позначає, що ця подія не сталася. Бажаний вихід нижче (мені не важливо друкувати твір, це лише в інформаційних цілях алгоритму):
[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
Ця проблема дотично пов'язана з розрахунком "декартового продукту".
Пам'ятайте, що це код-гольф, тому код з найменшою кількістю байтів виграє.
[0.129195, 0.019305, 0.262305, ..., 0.047905]
б достатньо як вихід або [0,0,0], [0,0,1], ...
необхідні?