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

पायथन में अलग-अलग प्रकार की वस्तुओं के साथ अधिकतम संख्या में K- आकार के समूहों को खोजने का कार्यक्रम संभव है

मान लीजिए कि हमारे पास गिनती नामक संख्याओं की एक सूची है जहां मायने रखता है [i] प्रकार की वस्तुओं की संख्या का प्रतिनिधित्व करता है। हमारे पास एक और मूल्य k भी है। हमें k आकार के समूहों की अधिकतम संख्या ज्ञात करनी होगी, जैसे कि प्रत्येक समूह में अलग-अलग प्रकार के आइटम होने चाहिए।

इसलिए, यदि इनपुट काउंट्स =[2, 3, 5, 3] k =2 की तरह है, तो आउटपुट 6 होगा, क्योंकि चार प्रकार की वस्तुओं को क्रमशः a, b, c, d द्वारा दर्शाया जाता है। हमारे पास k =2 के निम्नलिखित समूह हो सकते हैं, जहाँ सभी तत्व अलग-अलग प्रकार के होते हैं:[(c, a), (b, a), (c, b), (c, b), (d, a), (डी, ए)]।

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

  • एक फ़ंक्शन को संभव परिभाषित करें ()। यह मायने रखता है, समूह, k
  • आवश्यक :=समूह * k
  • मेरे लिए 0 से लेकर गिनती के आकार तक के लिए, करें
    • अस्थायी:=न्यूनतम गणना[i], समूह और आवश्यक
    • आवश्यक:=आवश्यक - अस्थायी
    • यदि आवश्यक हो तो 0 के समान है, तो
      • सही लौटें
  • झूठी वापसी
  • एक फ़ंक्शन को हल करें() परिभाषित करें। यह मायने रखेगा, k
  • res :=0
  • एल :=0
  • r :=गणना में मौजूद सभी तत्वों का योग
  • जबकि l <=r, करते हैं
    • m :=l + (r - l) / 2 की मंजिल
    • यदि संभव हो (गिनती, मी, के) सत्य है, तो
      • एल :=एम + 1
      • res :=अधिकतम रेस और m
    • अन्यथा,
      • r :=m - 1
  • रिटर्न रेस

उदाहरण

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

def possible(counts, groups, k):
   required = groups * k
   for i in range(len(counts)):
      temp = min(counts[i], groups, required)
      required -= temp
      if required == 0:
         return True
   return False

def solve(counts, k):
   res = 0
   l = 0
   r = sum(counts)
   while l <= r:
      m = l + (r - l) // 2
      if possible(counts, m, k):
         l = m + 1
         res = max(res, m)
      else:
         r = m - 1
   return res

counts = [2, 3, 5, 3]
k = 2
print(solve(counts, k))

इनपुट

[2, 3, 5, 3], 2

आउटपुट

6

  1. पायथन में अलग-अलग नोड्स का उपयोग करके संभावित बीएसटी की संख्या का पता लगाने के लिए कार्यक्रम तैयार किया जा सकता है

    मान लीजिए कि हमारे पास एक संख्या n है। यदि हमारे पास [1,2,...,n] जैसी संख्याएँ हैं, तो हमें इन n मानों का उपयोग करके संभावित BST की संख्या को गिनना होगा। अगर उत्तर बहुत बड़ा है, तो परिणाम को 10^9+7 से संशोधित करें। इसलिए, यदि इनपुट n =3 जैसा है, तो आउटपुट 14 होगा, इसे हल करने के लिए, हम इन चरणों

  1. 1 की अधिकतम संख्या के साथ पंक्ति खोजने के लिए मानचित्र फ़ंक्शन का उपयोग करके पायथन प्रोग्राम

    2D सरणी दी गई है और सरणियों के तत्व 0 और 1 हैं। सभी पंक्तियों को क्रमबद्ध किया गया है। हमें 1 की अधिकतम संख्या वाली पंक्ति ढूंढनी है। यहां हम मानचित्र () का उपयोग करते हैं। मानचित्र फ़ंक्शन कार्यात्मक प्रोग्रामिंग के लिए उपयोग किए जाने वाले पायथन बिल्ट-इन्स में सबसे सरल है। ये उपकरण अनुक्रमों और अन्

  1. पायथन प्रोग्राम मैप फ़ंक्शन का उपयोग करके एक पंक्ति को अधिकतम 1's . के साथ खोजने के लिए

    2D सरणी दी गई है और सरणियों के तत्व 0 और 1 हैं। सभी पंक्तियों को क्रमबद्ध किया गया है। हमें 1 की अधिकतम संख्या वाली पंक्ति ढूंढनी है। यहां हम मानचित्र () का उपयोग करते हैं। मानचित्र फ़ंक्शन कार्यात्मक प्रोग्रामिंग के लिए उपयोग किए जाने वाले पायथन बिल्ट-इन्स में सबसे सरल है। ये उपकरण अनुक्रमों और अन्