สมมติว่าคุณตื่นขึ้นมาในเช้าวันหนึ่ง แต่คุณนอนหลับเพื่อให้คุณนอนหลับได้อีก 8 นาที เมื่อมันดังขึ้นอีกครั้งคุณจะลุกขึ้นและอาบน้ำซึ่งคุณประมาณ 15 ถึง 17 นาที จากนั้นคุณแปรงฟันเป็นเวลา 2 นาทีและแต่งตัวซึ่งใช้เวลาประมาณ 3 ถึง 5 นาที ในที่สุดคุณกินอาหารเช้าที่เร่งรีบใน 6 ถึง 8 นาทีแล้ววิ่งออกจากประตู
8 15-17 2 3-5 6-8
เราสามารถแสดงลำดับระยะเวลานี้เป็น
เมื่อพิจารณาถึงความไม่แน่นอนของกิจวัตรช่วงเช้าของคุณความน่าจะเป็นที่คุณทำแต่ละงานในเวลาไม่กี่นาทีนับตั้งแต่ที่คุณตื่นขึ้นมาเป็นครั้งแรก
สมมติว่าทุกงานต้องใช้เวลาเป็นจำนวนนาทีเราสามารถทำแผนภูมิการผสมของช่วงเวลาที่ไม่แน่นอน (เช่น 3, 4 และ 5 นาทีสำหรับการแปรงฟัน) แผนภูมินี้แสดงความเป็นไปได้ทั้งหมด 27 รายการโดยมีเวลาเพิ่มขึ้นทางด้านขวาและแต่ละภารกิจของ N นาทีที่แสดงด้วยเครื่องหมายขีดกลาง (N - 1) และแถบแนวตั้งหนึ่งแถบเพียงเพื่อทำเครื่องหมายจุดสิ้นสุด ขอบเขตนาทีเกิดขึ้นระหว่างตัวละครเพื่อให้ช่องว่างระหว่างที่8
และ9
คอลัมน์กลายเป็น8 min 59 sec
9 min
1111111111222222222233333333334
1234567890123456789012345678901234567890 <-- Minute
-------|--------------|-|--|-----|
-------|--------------|-|--|------|
-------|--------------|-|--|-------|
-------|--------------|-|---|-----|
-------|--------------|-|---|------|
-------|--------------|-|---|-------|
-------|--------------|-|----|-----|
-------|--------------|-|----|------|
-------|--------------|-|----|-------|
-------|---------------|-|--|-----|
-------|---------------|-|--|------|
-------|---------------|-|--|-------|
-------|---------------|-|---|-----|
-------|---------------|-|---|------|
-------|---------------|-|---|-------|
-------|---------------|-|----|-----|
-------|---------------|-|----|------|
-------|---------------|-|----|-------|
-------|----------------|-|--|-----|
-------|----------------|-|--|------|
-------|----------------|-|--|-------|
-------|----------------|-|---|-----|
-------|----------------|-|---|------|
-------|----------------|-|---|-------|
-------|----------------|-|----|-----|
-------|----------------|-|----|------|
-------|----------------|-|----|-------|
1234567891111111111222222222233333333334 <-- Minute
0123456789012345678901234567890
เป็นที่ชัดเจนว่างานประจำอาจใช้เวลาอย่างน้อย 40 นาทีและอย่างน้อย 34 นาที
คำถามคือในนาทีที่เฉพาะเจาะจงพูดในนาทีที่ 29 โอกาสที่คุณทำภารกิจทั้ง 5 จากอะไรบ้าง สมมติว่าแต่ละช่วงเวลาไม่แน่นอนมีการกระจายอย่างสม่ำเสมอตลอดทั้งนาทีที่แน่นอน ดังนั้นงาน 4-7 จึงมีโอกาส 25% ที่จะได้ 4, 5, 6 หรือ 7 นาที
จากแผนภูมิจะเห็นได้ว่าในนาทีที่ 29 มี ...
0/27 chance you were snoozing (task 1)
0/27 chance you were showering (task 2)
0/27 chance you were brushing (task 3)
24/27 chance you were dressing (task 4)
3/27 chance you were eating (task 5)
ในทำนองเดียวกันในนาทีที่ 1 มี27/27
โอกาสที่คุณจะงีบหลับกับ0/27
ทุกที่อื่น
ตัวอย่างเช่นในนาทีที่ 38, 17 ของรูทีนที่อาจเกิดขึ้นได้สิ้นสุดลงแล้ว ดังนั้นใน 10 จาก 10 กรณีคุณจะรับประทานอาหาร นี่หมายถึงความน่าจะเป็น
0/10 task 1, 0/10 task 2, 0/10 task 3, 0/10 task 4, 10/10 task 5
ท้าทาย
เขียนฟังก์ชั่นที่รับค่าจำนวนเต็มสำหรับค่านาทีและสตริงที่ประกอบด้วยลำดับของเลขจำนวนเต็มเดียวหรือคู่ของจำนวนเต็มa-b
ด้วยb
> a
ทั้งหมดคั่นด้วยช่องว่าง (เช่น8 15-17 2 3-5 6-8
) จำนวนเต็มทั้งหมดเป็นค่าบวก นาทีอินพุตจะน้อยกว่าหรือเท่ากับเวลาสูงสุดที่เป็นไปได้ (ตัวอย่าง 40)
ฟังก์ชั่นควรส่งกลับสตริงอื่นเพื่อแสดงถึงโอกาสในการเป็นเศษส่วนที่ไม่ได้เกิดขึ้นในแต่ละงานในเวลาที่กำหนด
ตัวอย่าง
myfunc(29, "8 15-17 2 3-5 6-8")
ส่งคืนสตริง0/27 0/27 0/27 24/27 3/27
myfunc(1, "8 15-17 2 3-5 6-8")
ส่งคืนสตริง27/27 0/27 0/27 0/27 0/27
myfunc(38, "8 15-17 2 3-5 6-8")
ส่งคืนสตริง0/10 0/10 0/10 0/10 10/10
myfunc(40, "8 15-17 2 3-5 6-8")
ส่งคืนสตริง0/1 0/1 0/1 0/1 1/1
หากภาษาของคุณไม่มีสตริงหรือฟังก์ชั่นคุณอาจใช้ตัวแปรที่มีชื่อ stdin / stdout, บรรทัดคำสั่งหรือสิ่งที่เหมาะสมที่สุด
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟ ทางออกที่สั้นที่สุดในหน่วยไบต์ชนะ
|
ขวา|
หรือครึ่งหนึ่งของแต่ละงานหรือไม่?