मान लीजिए कि हमारे पास समीक्षाओं और थ्रेशोल्ड मान t नामक एक सूची है। समीक्षाओं में प्रत्येक आइटम [i] में [x, y] का अर्थ है उत्पाद मेरे पास 5-स्टार रेटिंग की x संख्या और समीक्षाओं की y संख्या थी। हमें कम से कम अतिरिक्त 5-स्टार समीक्षाओं की आवश्यकता है, ताकि उन आइटम सूची के लिए 5-स्टार समीक्षाओं का प्रतिशत कम से कम t प्रतिशत हो।
इसलिए, यदि इनपुट समीक्षाओं की तरह है =[[3, 4], [1, 2], [4, 6]] थ्रेशोल्ड =78, तो आउटपुट 7 होगा, क्योंकि कुल मिलाकर 8 5-स्टार समीक्षाएँ थीं और 12 समीक्षाएँ। 78% 5-स्टार समीक्षाओं तक पहुंचने के लिए, हमें 7 और 5-स्टार समीक्षाओं की आवश्यकता है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
ए:=0, बी:=0
-
समीक्षाओं में प्रत्येक 5-स्टार गणना c और समीक्षा गणना d के लिए, करें
-
ए:=ए + सी
-
बी:=बी + डी
-
-
अगर a * 100>=t * b, तो
-
वापसी 0
-
-
डेल्टा:=टी * बी - 100 * ए
-
(डेल्टा +(99 - टी))/(100 - टी)
. की वापसी मंजिल
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें
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