在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