Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में थ्रेशोल्ड प्रतिशत तक पहुंचने के लिए आवश्यक 5-स्टार रिव्यू की संख्या गिनना


मान लीजिए हमारे पास reviews नामक एक लिस्ट और एक थ्रेशोल्ड मान t है। reviews में प्रत्येक आइटम [x, y] है जिसका अर्थ है उत्पाद i को x संख्या में 5-स्टार रेटिंग और y संख्या में रिव्यू मिले हैं। हमें अतिरिक्त 5-स्टार रिव्यू की न्यूनतम संख्या ढूंढनी है ताकि उन आइटम्स की लिस्ट के लिए 5-स्टार रिव्यू का प्रतिशत कम से कम t प्रतिशत हो।

उदाहरण के लिए, यदि इनपुट है reviews = [[3, 4],[1, 2],[4, 6]], threshold = 78, तो आउटपुट होगा 7, क्योंकि कुल मिलाकर 8 5-स्टार रिव्यू और 12 रिव्यू थे। 78% 5-स्टार रिव्यू तक पहुंचने के लिए, हमें 7 और 5-स्टार रिव्यू की आवश्यकता है।

समाधान दृष्टिकोण

कुल 5-स्टार a और कुल रिव्यू b की गणना करें। यदि a*100 >= t*b पहले से ही है, तो 0 लौटाएं। अन्यथा delta = t*b - 100*a के लिए हल करें: प्रत्येक नया 5-स्टार रिव्यू a और b दोनों को 1 से बढ़ाता है। फॉर्मूला: (delta + (99-t)) // (100-t)।

  • a = 0, b = 0 आरंभ करें।
  • प्रत्येक (c, d) के लिए reviews में: a += c, 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

  1. - पायथन में संभावित विनम्र मैट्रिक्स की संख्या गिनने का प्रोग्राम

    मान लीजिए हमारे पास दो मान n और m हैं। हमें क्रम n x m के विनम्र मैट्रिक्स की संभावित व्यवस्थाओं की संख्या खोजनी है। एक मैट्रिक्स को विनम्र कहा जाता है जब:इसमें 1 से n x m तक का प्रत्येक तत्व ठीक एक बार होता हैकिसी भी दो इंडेक्स जोड़े (i1, j1) और (i2, j2) के लिए, यदि (i1 + j1) < (i2 + j2), तो Mat

  1. - Python प्रोग्राम - स्ट्रिंग में विशिष्ट सबस्ट्रिंग की संख्या गिनें

    एक स्ट्रिंग s दी गई है, हमें s के विशिष्ट गैर-खाली सबस्ट्रिंग की संख्या खोजनी है। उदाहरण इनपुट: s = abaa आउटपुट: 8 व्याख्या: सबस्ट्रिंग हैं [a, b, ab, ba, aa, aba, baa, abaa]। एल्गोरिदम (ट्राई/प्रीफिक्स ट्री) trie := {} (खाली डिक्शनरी) n := len(s) i 0 से n-1 तक: curr := trie j i से n-1

  1. पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की सूची है। हमारे पास x नामक एक और संख्या भी है। हमें nums से उन सभी नंबरों को फ़िल्टर करके ढूंढना है जो x से कम हैं। पायथन में filter() मेथड होता है जो फंक्शन को आर्गुमेंट के रूप में लेता है और इस फंक्शन का उपयोग करके फ़िल्टर करता है। तो, यदि इनपुट nums = [1,5