ลอตเตอรี่เป็นหวยอเมริกันที่เพิ่งได้รับความสนใจเนื่องจากแจ็คพอตปัจจุบัน (ณ วันที่ 11 มกราคม 2016) เป็นรางวัลล็อตโต้ที่ใหญ่ที่สุดในประวัติศาสตร์ประมาณ 1.5 พันล้านเหรียญสหรัฐ ( USD )
ผู้เล่น Powerball เลือก 5 หมายเลขที่แตกต่างกันจากลูกบอลสีขาว 69 หมายเลขและ 1 "Powerball" หมายเลขหนึ่งจากลูกบอลสีแดง 26 หมายเลข พวกเขาชนะรางวัลแจ็คพอตหากลูกบอลสีขาวห้าลูกเลือกตรงกับสิ่งที่วาดตามลำดับใด ๆและหากพวกเขาเลือกหมายเลข "Powerball" ที่ถูกต้อง
โอกาสชนะแจ็คพอตคือ 1 ใน(69 choose 5)*(26 choose 1)
หรือ((69*68*67*66*65)/(5*4*3*2*1))*26
เท่ากับ1 ใน 292,201,338
ไม่มีใครชนะแจ็คพอตในการจับรางวัลครั้งล่าสุดเมื่อวันที่ 9 มกราคม 2016 แต่บางทีใครบางคนอาจจะชนะการจับรางวัลครั้งต่อไปในวันที่ 13 มกราคม 2016, 22:59 น. ET
ท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่เลียนแบบการวาด Powerball โดยไม่ต้องป้อนข้อมูล แต่ให้ส่ง 5 หมายเลขสุ่มที่แตกต่างกันจาก 1 ถึง 69 และจากนั้นหนึ่งหมายเลข "Powerball" สุ่มจาก 1 ถึง 26 รวม (ซึ่งอาจเป็นการซ้ำหนึ่งใน 5 ตัวเลขเริ่มต้น)
หมายเลข "Powerball" ควรเป็นหมายเลขสุดท้ายในผลลัพธ์เสมอมิฉะนั้นคำสั่งของหมายเลข 5 ตัวแรกนั้นไม่สำคัญ
ตัวเลข 6 ตัวควรเป็นเอาต์พุตในรูปแบบทศนิยมคั่นด้วยช่องว่างหรือขึ้นบรรทัดใหม่ด้วยการขึ้นบรรทัดใหม่แบบตัวเลือกเดียว ไม่อนุญาตให้ใช้เครื่องหมายจุลภาควงเล็บและอักขระอื่นในเอาต์พุต
ดังนั้นสิ่งเหล่านี้จะเป็นผลลัพธ์ที่ถูกต้อง (ใช้ตัวเลขจากรูปวาดล่าสุด ):
32 16 19 57 34 13
32
16
19
57
34
13
ผลลัพธ์ที่เป็นไปได้ทั้งหมด 292201338 ควรเป็นไปได้ด้วยความน่าจะเป็นแบบเดียวกัน คุณสามารถใช้ตัวสร้างตัวเลขสุ่มหลอกในตัวและถือว่าพวกมันตรงตามมาตรฐานนี้
นี่คือการใช้งานอ้างอิงแบบไม่ถูกปรับแต่งที่ทำงานใน Python 2 หรือ 3:
import random
print(' '.join(map(str, random.sample(range(1,70), 5) + [random.randint(1, 26)])))
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
โปรดทราบว่าฉันไม่มีส่วนเกี่ยวข้องกับ Powerball และไม่แนะนำให้คุณเล่น แต่ถ้าคุณชนะรางวัลใด ๆ จากตัวเลขที่เกิดจากหนึ่งในโปรแกรมที่นี่ฉันแน่ใจว่าเรายินดีที่จะรับฟัง : D
5! = 5*4*3*2*1
วิธีการจัดเรียง 5 สิ่งเพื่อให้คุณแยกตัวประกอบ