กำหนดลำดับของเหตุการณ์ที่มีความน่าจะเป็นระหว่าง 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
ปัญหานี้มีความเกี่ยวข้องกับการคำนวณ "ผลิตภัณฑ์คาร์ทีเซียน" ตามลำดับ
จำไว้ว่านี่คือ code-golf ดังนั้นโค้ดที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ
[0.129195, 0.019305, 0.262305, ..., 0.047905]
เพียงพอตามผลลัพธ์หรือ[0,0,0], [0,0,1], ...
จำเป็นหรือไม่