Учитывая последовательность событий с вероятностями от 0,0 до 1,0, генерировать и выводить вероятность возникновения каждой комбинации. Вы можете предположить, что последовательность чисел предоставляется в любой конструкции, которую обеспечивает выбранный вами язык.
Вот пример; Вы можете предположить, что длина комбинаций последовательности вписывается в память:
{ 0.55, 0.67, 0.13 }
Программа должна распечатать каждую комбинацию и соответствующую вероятность этой последовательности. 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], ...
необходимы?