Diberikan urutan kejadian dengan probabilitas antara 0,0 dan 1,0, hasilkan dan turunkan probabilitas setiap kombinasi yang terjadi. Anda dapat menganggap bahwa urutan angka disediakan dalam bentuk apa pun yang disediakan oleh bahasa pilihan Anda.
Ini sebuah contoh; Anda dapat menganggap bahwa panjang kombinasi urutannya masuk ke dalam memori:
{ 0.55, 0.67, 0.13 }
Program harus mencetak setiap kombinasi dan probabilitas terkait dari urutan yang terjadi. A 1 harus menyatakan bahwa peristiwa dalam indeks dari urutan input terjadi dan 0 harus menyatakan bahwa peristiwa itu tidak terjadi. Output yang diinginkan di bawah ini (saya tidak peduli tentang mencetak pekerjaan, itu hanya untuk tujuan informasi dari algoritma):
[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
Masalah ini secara tangensial terkait dengan penghitungan "produk Cartesian".
Ingat, ini adalah kode-golf, jadi kode dengan jumlah byte paling sedikit menang.
[0.129195, 0.019305, 0.262305, ..., 0.047905]
cukup sebagai output atau [0,0,0], [0,0,1], ...
perlu?