สมมติว่าเรามีรายการที่เรียกว่าบทวิจารณ์และค่าเกณฑ์ 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