บทนำ
เมื่อได้รับชุดเปอร์เซ็นต์ของตัวเลือกในการสำรวจให้คำนวณจำนวนขั้นต่ำของผู้ลงคะแนนที่จะต้องมีในการสำรวจเพื่อสร้างสถิติเหล่านั้น
ตัวอย่าง: สัตว์เลี้ยงตัวโปรดของคุณคืออะไร?
- หมา:
44.4%
- แมว:
44.4%
- เมาส์:
11.1%
เอาต์พุต: 9
(จำนวนผู้ลงคะแนนต่ำสุดที่เป็นไปได้)
รายละเอียด
นี่คือข้อกำหนดสำหรับโปรแกรม / ฟังก์ชั่นของคุณ:
- คุณจะได้รับอาร์เรย์ของค่าร้อยละเป็นอินพุต (บน stdin, เป็นฟังก์ชั่นการโต้แย้ง ฯลฯ )
- ค่าเปอร์เซ็นต์แต่ละค่าจะถูกปัดเศษเป็นทศนิยมหนึ่งตำแหน่ง (เช่น,
44.4 44.4 11.1
) - คำนวณจำนวนผู้ลงคะแนนขั้นต่ำที่เป็นไปได้ในการสำรวจความคิดเห็นซึ่งผลลัพธ์จะให้เปอร์เซ็นต์ที่แน่นอนเมื่อปัดเศษเป็นทศนิยมหนึ่งตำแหน่ง (บน stdout หรือค่าส่งคืนฟังก์ชัน)
- โบนัส : -15 ตัวอักษรหากคุณสามารถแก้ปัญหาได้ในแบบ "ไม่สำคัญ" (กล่าวคือไม่เกี่ยวข้องกับการวนซ้ำของจำนวนผู้มีสิทธิเลือกตั้งที่เป็นไปได้ทั้งหมดจนกว่าคุณจะพบคนแรกที่ทำงาน)
ตัวอย่าง
>./pollreverse 44.4 44.4 11.1
9
>./pollreverse 26.7 53.3 20.0
15
>./pollreverse 48.4 13.7 21.6 6.5 9.8
153
>./pollreverse 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 99.6
2000
>./pollreverse 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 98.7
667
>./pollreverse 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 98.7
2000
>./pollreverse 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 97.8
401
เกณฑ์การให้คะแนน
นี่คือโค้ดกอล์ฟดังนั้นตัวละครที่สั้นที่สุดจึงชนะ โบนัสใด ๆ จะถูกหักออกจากจำนวนตัวอักษรทั้งหมด
0.5%
จากยอดรวมและทุกครั้งที่มีการปัดเศษขึ้นคุณจะเพิ่ม0.5%
เป็นยอดรวม กรณีทดสอบสี่ชุดสุดท้ายถูกสร้างขึ้นโดยมีจุดประสงค์เพื่อใช้ประโยชน์จากปรากฏการณ์นี้อย่างเหมาะสมที่สุด ในกรณีทดสอบครั้งแรกที่ส่งผล2000
ให้แต่ละ 9 รายการแรกแสดงถึงการ1
ลงคะแนน (และถูกปัดเศษขึ้นทั้งหมด0.5%
) ในขณะที่รายการสุดท้ายแทนการ1991
ลงคะแนน (และถูกปัดเศษ ~ 0.5%
) หากคุณคำนวณเปอร์เซ็นต์เหล่านั้นด้วยตนเองและปัดเศษทศนิยมเป็น 1 คุณจะเห็นว่าถูกต้องทั้งหมด
26.7 53.3 20.0
(4 8 3 จาก 15),48.4 13.7 21.6 6.5 9.8
(74 21 33 10 15 จาก 153) ฯลฯ