Giả sử chúng ta có một danh sách được gọi là đánh giá và giá trị ngưỡng t. Mỗi mục trong bài đánh giá [i] có [x, y] có nghĩa là sản phẩm tôi có x số lượng xếp hạng 5 sao và y số bài đánh giá. Chúng tôi phải tìm số lượng bài đánh giá 5 sao bổ sung tối thiểu mà chúng tôi cần để tỷ lệ phần trăm bài đánh giá 5 sao cho danh sách mặt hàng đó ít nhất là t phần trăm.
Vì vậy, nếu đầu vào là đánh giá =[[3, 4], [1, 2], [4, 6]] ngưỡng =78, thì đầu ra sẽ là 7, vì tổng cộng có 8 đánh giá 5 sao và 12 nhận xét. Để đạt được 78% bài đánh giá 5 sao, chúng tôi cần thêm 7 bài đánh giá 5 sao nữa.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
a:=0, b:=0
-
cho mỗi lượt đánh giá 5 sao c và lượt đánh giá d trong các bài đánh giá, hãy thực hiện
-
a:=a + c
-
b:=b + d
-
-
nếu a * 100> =t * b, thì
-
trả về 0
-
-
delta:=t * b - 100 * a
-
tầng hoàn trả của (delta + (99 - t)) / (100 - t)
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
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))
Đầu vào
[[3, 4], [1, 2],[4, 6] ],78
Đầu ra
7