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

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

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

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

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • लो :=0
  • नमस्ते :=1 + अधिकतम लॉग्स
  • जबकि लो + 1 <हाय, करो
    • मील :=लो + फ्लोर ऑफ़ (हाय - लो)/2
    • यदि सूची में मौजूद सभी तत्वों का योग (न्यूनतम मील और प्रत्येक लॉग इन लॉग के लिए लॉग) <=सीमा, तो
      • लो :=मील
    • अन्यथा,
      • नमस्ते :=मील
  • वापसी लो

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

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))

इनपुट

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

आउटपुट

900

  1. ग्राफ़ में सबसे बड़े गुट के न्यूनतम आकार का पता लगाने का कार्यक्रम (पायथन)

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

  1. एक सरणी में सबसे बड़ा तत्व खोजने के लिए पायथन प्रोग्राम

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

  1. एक सरणी में सबसे बड़ा तत्व खोजने के लिए पायथन कार्यक्रम

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