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], ...
आवश्यक हैं?