Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình đếm số lượng bài đánh giá 5 sao cần thiết để đạt được tỷ lệ phần trăm ngưỡng bằng Python

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