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

बस के आकार का पता लगाने के लिए पायथन प्रोग्राम जिसमें समूह के सभी मित्र शामिल हो सकते हैं

मान लीजिए, कई छात्र समूह अपने कॉलेज से कॉलेज बस के माध्यम से अपने घर वापस जाने की प्रतीक्षा कर रहे हैं। प्रत्येक छात्र समूह में छात्रों की संख्या m है। छात्र समूह अलग हुए बिना बस से यात्रा करना चाहते हैं। वे बस में तभी चढ़ते हैं जब उनके समूह के सभी सदस्य बस में चढ़ सकते हैं। इसके अलावा, एक समूह बस में नहीं चढ़ता है यदि उनका पिछला समूह बस में नहीं चढ़ा है या पहले ही अपने गंतव्य तक पहुँच चुका है। यदि हमें समूहों की संख्या और प्रत्येक समूह में छात्रों की संख्या दी जाती है, तो हमें बस के आकार का पता लगाना होगा ताकि बस सभी समूहों को ले जा सके, और हर बार जब बस कॉलेज से शुरू होती है तो कोई खाली जगह नहीं होती है। बस में।

इसलिए, यदि इनपुट समूह या gr_no =[3, 4, 2, 2, 1, 4, 3, 5] जैसा है, तो आउटपुट [12, 24] होगा।

अगर बस का आकार 12 है, तो इसमें पहली यात्रा पर समूह 1 - 5 और दूसरी यात्रा पर बाकी समूह शामिल हो सकते हैं।

यदि बस का आकार 24 है, तो इसमें सभी समूह शामिल हो सकते हैं और उन्हें केवल एक यात्रा पर ले जाया जा सकता है।

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

  • फ़ंक्शन को परिभाषित करें factor_ret() । इसमें n
      . लगेगा
    • मैं श्रेणी में (0 से n ^ 0.5), करो
      • यदि n mod i 0 के समान है, तो
        • output_list में एक टपल (i, फ्लोर वैल्यू (n/i)) जोड़ें
    • सूची को क्रमबद्ध करें output_list
    • एक सेट के रूप में output_list लौटाएं
  • अब निम्न चरणों का पालन करें -
  • कुल:=एक नई सूची जिसमें आइटम gr_no[0]
  • . है
  • 1 से लेकर gr_no के आकार तक के लिए, करें
    • कुल डालें[i - 1] + gr_no[i] कुल के अंत में
  • b_sizes:=एक नई सूची
  • factor_ret में प्रत्येक आकार के लिए (सूची का योग (gr_no)), करें
    • temp_list :=कुल में से सभी गैर-शून्य तत्वों की एक नई सूची
    • सूचकांक:=1
    • संकेतक:=सत्य
    • temp_list में प्रत्येक बिंदु के लिए, करें
      • यदि बिंदु आकार * सूचकांक के समान नहीं है, तो
        • संकेतक:=गलत
        • लूप से बाहर आएं
      • सूचकांक :=अनुक्रमणिका + 1
    • यदि संकेतक सही है, तो
      • b_sizes के अंत में आकार डालें
  • ब_आकार लौटाएं

उदाहरण

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

from functools import reduce
def solve(gr_no):
   total = [gr_no[0]]
   for i in range(1, len(gr_no)):
      total.append(total[i - 1] + gr_no[i])
   b_sizes = []
   for size in factor_ret(sum(gr_no)):
      temp_list = list(filter(lambda x : x % size == 0, total))
      index = 1
      indicator = True
      for point in temp_list:
         if point != size * index:
            indicator = False
            break
         index += 1
      if indicator:
         b_sizes.append(size)
   return b_sizes
def factor_ret(n):
   return sorted(set(reduce(list.__add__, ([i, n//i] for i in range(1, int(n**0.5) + 1) if n % i == 0))))
print(solve([3, 4, 2, 2, 1, 4, 3, 5]))

इनपुट

[3, 4, 2, 2, 1, 4, 3, 5]

आउटपुट

[12, 24]

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

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

  1. यह पता लगाने के लिए कार्यक्रम कि क्या पायथन में सभी के द्वारा ग्राफ़ को ट्रैवर्स किया जा सकता है

    मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्षों की संख्या 0 से n - 1 है। ग्राफ अप्रत्यक्ष है और प्रत्येक किनारे का वजन है। ग्राफ में तीन प्रकार के भार हो सकते हैं और प्रत्येक भार एक विशेष कार्य को दर्शाता है। दो लोग हैं जो ग्राफ को पार कर सकते हैं, अर्थात् जैक और केसी। जैक ग्राफ को पार कर सकता

  1. पायथन में गोदाम में कितने बक्से रखे जा सकते हैं यह पता लगाने के लिए कार्यक्रम

    मान लीजिए, हमारे पास दो सरणियाँ हैं जिनमें पूर्णांक हैं। एक सूची में कुछ इकाई चौड़ाई वाले बक्सों की ऊँचाई होती है और दूसरी सूची में गोदाम में कमरों की ऊँचाई होती है। कमरों की संख्या 0...n है, और कमरों की ऊंचाई सरणी गोदाम में उनके संबंधित सूचकांक में प्रदान की जाती है। हमें पता लगाना है कि कितने बक्स