สมมติว่าเรามีรายการที่เรียกว่าบทวิจารณ์และค่าเกณฑ์ t แต่ละรายการในบทวิจารณ์[i] มี [x, y] หมายถึงผลิตภัณฑ์ที่ฉันมี x จำนวนคะแนนระดับ 5 ดาวและจำนวนบทวิจารณ์ y เราต้องหาจำนวนบทวิจารณ์ระดับ 5 ดาวเพิ่มเติมขั้นต่ำที่เราต้องการ เพื่อให้เปอร์เซ็นต์ของบทวิจารณ์ระดับ 5 ดาวสำหรับรายการเหล่านั้นมีอย่างน้อย t เปอร์เซ็นต์
ดังนั้น หากอินพุตเป็นเหมือนบทวิจารณ์ =[[3, 4],[1, 2],[4, 6]] เกณฑ์ =78 ผลลัพธ์จะเป็น 7 เนื่องจากมีบทวิจารณ์ระดับ 5 ดาวทั้งหมด 8 รายการและ 12 รีวิว เพื่อให้ได้รับรีวิวระดับ 5 ดาวถึง 78% เราต้องการรีวิวระดับ 5 ดาวอีก 7 รายการ
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
a :=0, b :=0
-
สำหรับแต่ละการนับ 5 ดาว c และจำนวนบทวิจารณ์ d ในบทวิจารณ์ ทำ
-
a :=a + c
-
b :=b + d
-
-
ถ้า a * 100>=t * b แล้ว
-
คืนค่า 0
-
-
เดลต้า :=t * b - 100 * a
-
ชั้นกลับของ (เดลต้า +(99 - t))/(100 - t)
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
def solve(reviews, t): a = 0 b = 0 for c, d in reviews: a += c b += d if a * 100 >= t * b: return 0 delta = t * b - 100 * a return (delta + (99 - t)) // (100 - t) reviews = [ [3, 4], [1, 2], [4, 6] ] t = 78 print(solve(reviews, t))
อินพุต
[[3, 4], [1, 2],[4, 6] ],78
ผลลัพธ์
7