Đưa ra một chuỗi các sự kiện có xác suất từ 0,0 đến 1, tạo và rút ra xác suất của mỗi sự kết hợp xảy ra. Bạn có thể đoán rằng một chuỗi số được cung cấp trong bất kỳ cấu trúc nào mà ngôn ngữ bạn chọn cung cấp.
Đây là một ví dụ; bạn có thể đoán rằng độ dài của các kết hợp của chuỗi phù hợp với bộ nhớ:
{ 0.55, 0.67, 0.13 }
Chương trình sẽ in từng kết hợp và xác suất liên quan của chuỗi đó xảy ra. 1 sẽ biểu thị rằng sự kiện trong chỉ mục đó của chuỗi đầu vào xảy ra và 0 sẽ biểu thị rằng sự kiện đó đã không xảy ra. Đầu ra mong muốn ở bên dưới (Tôi không quan tâm đến việc in tác phẩm, đó chỉ nhằm mục đích thông tin của thuật toán):
[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
Vấn đề này liên quan đến việc tính toán một "sản phẩm của Cartesian".
Hãy nhớ rằng, đây là mã golf, vì vậy mã có số byte ít nhất sẽ thắng.
[0.129195, 0.019305, 0.262305, ..., 0.047905]
là đủ như đầu ra hoặc là [0,0,0], [0,0,1], ...
cần thiết?