在Python中编写程序以计算达到阈值百分比所需的五星级评论数量

在Python中编写程序以计算达到阈值百分比所需的五星级评论数量

假设我们有一个名为reviews的列表和一个阈值值t。reviews[i]中的每个项具有[x,y],表示产品i有x个五星级评级和y个评论。我们必须找到需要的最小数量的额外五星级评价,以便这些商品的五星级评价百分比至少为t百分比。

因此,如果输入如下:reviews = [[3, 4],[1, 2],[4, 6]],threshold = 78,那么输出将为7,因为总共有8个五星级评价和12个评论。要达到78%的五星级评价,我们需要7个额外的五星级评价。

要解决这个问题,我们需要按照以下步骤进行 –

  • a := 0, b := 0

  • 对于reviews中的每个五星级评价c和评论数d,执行以下操作

    • a := a + c

    • b := b + d

  • 如果a * 100 >= t * b,则

    • 返回0
  • delta := t * b – 100 * a

  • 返回(delta + (99 – t)) / (100 – t)的floor

示例

让我们看一下以下实现,以便更好地理解

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程