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

पायथन में लॉग्स को डेटाबेस में पूरी तरह स्टोर करने के लिए सबसे बड़े ट्रंकेट साइज को खोजने का प्रोग्राम

मान लीजिए हमारे पास logs नामक संख्याओं की एक सूची है और एक मान limit है। logs[i में प्रत्येक तत्व i-वें उपयोगकर्ता द्वारा उत्पन्न लॉग्स का आकार दर्शाता है। और limit उस कुल आकार को दर्शाता है जिसे हम अपने डेटाबेस में स्टोर कर सकते हैं। हमें सबसे बड़ा x ढूंढना है जैसे कि यदि हम logs में हर लॉग को अधिकतम आकार x तक ट्रंकेट करते हैं, और शेष लॉग आकारों का योग अधिकतम limit है। यदि किसी लॉग को ट्रंकेट करने की आवश्यकता नहीं है, तो बस सबसे बड़ा लॉग आकार लौटाएं।

उदाहरण के लिए, यदि इनपुट है logs = [500, 200, 10000, 500, 4000], limit = 3000, तो आउटपुट 900 होगा, क्योंकि हम लॉग्स को 900 तक ट्रंकेट करते हैं, तो हमें [500, 200, 900, 500, 900] मिलता है अब योग 3000 है।

एल्गोरिदम (बाइनरी सर्च)

  1. lo := 0
  2. hi := 1 + max(logs)
  3. while lo + 1 < hi:
    • mi := lo + (hi - lo) // 2
    • यदि sum(min(mi, log) for log in logs) <= limit, तो lo := mi
    • अन्यथा, hi := mi
  4. lo लौटाएं

उदाहरण कार्यान्वयन

def solve(logs, limit):
    lo, hi = 0, max(logs) + 1
    while lo + 1 < hi:
        mi = lo + (hi - lo) // 2
        if sum(min(mi, log) for log in logs) <= limit:
            lo = mi
        else:
            hi = mi
    return lo

logs = [500, 200, 10000, 500, 4000]
limit = 3000
print(solve(logs, limit))  # आउटपुट: 900

इनपुट

[500, 200, 10000, 500, 4000], 3000

आउटपुट

900
  1. पायथन में ग्राफ में सबसे बड़े क्लिक का न्यूनतम आकार ज्ञात करने का प्रोग्राम पायथन में ग्राफ में सबसे बड़े क्लिक का न्यूनतम आकार ज्ञात करने का प्रोग्राम

    मान लीजिए हमें एक ग्राफ दिया गया है और हमें उसमें सबसे बड़े क्लिक का न्यूनतम आकार ढूंढना है। एक ग्राफ का क्लिक ग्राफ का एक उपसमुच्चय है जहां हर जोड़ी शीर्ष आसन्न होती है, यानी हर जोड़ी शीर्ष के बीच एक किनारा मौजूद होता है। ग्राफ में सबसे बड़ा क्लिक ढूंढना बहुपद समय में संभव नहीं है, इसलिए छोटे ग्रा

  1. Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे के सबसे बड़े तत्व की गणना करने की आवश्यकता है। यहां हम ब्रूट-फोर्स दृष्टिकोण का उपयोग करते हैं जिसमें हम पूरे लूप को पार करके और तत्व प्राप्त करके सबसे बड़ा तत्व निकालते हैं। हम नीच

  1. पायथन प्रोग्राम: ऐरे में सबसे बड़ा एलिमेंट ढूंढें पायथन प्रोग्राम: ऐरे में सबसे बड़ा एलिमेंट ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक ऐरे दिए जाने पर, हमें ऐरे में सबसे बड़ा एलिमेंट ढूंढने की आवश्यकता है। दृष्टिकोण हम max को पहले एलिमेंट के रूप में इनिशियलाइज़ करते हैं। इसके बाद, हम दिए गए ऐरे