確率が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], ...
必要が?