확률이 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
이 문제는 "Cartesian product"계산과 관련이 있습니다.
이것은 코드 골프이므로 바이트 수가 가장 적은 코드가 이깁니다.
[0.129195, 0.019305, 0.262305, ..., 0.047905]
출력으로 충분 또는은 [0,0,0], [0,0,1], ...
필요?