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) 的向下取整結果

示例

讓我們看看下面的實現來更好地理解

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

更新於:2021年10月11日

670 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.