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

केडेन के एल्गोरिदम का उपयोग करके मैक्सिमम सबएरे प्रॉब्लम को हल करने का पायथन प्रोग्राम


जब केडेन के एल्गोरिदम का उपयोग करके मैक्सिमम सबएरे खोजना हो, तो एक विधि परिभाषित की जाती है जो सबएरे का मैक्सिमम खोजने में मदद करती है। इटरेटर्स का उपयोग मैक्सिमम सबएरे को ट्रैक करने के लिए किया जाता है।

उदाहरण

def find_max_sub_array(my_list, beg, end):
    max_end_at_i = max_seen_till_now = my_list[beg]
    max_left_at_i = max_left_till_now = beg
    max_right_till_now = beg + 1
    for i in range(beg + 1, end):
        if max_end_at_i > 0:
            max_end_at_i += my_list[i]
        else:
            max_end_at_i = my_list[i]
            max_left_at_i = i
        if max_end_at_i > max_seen_till_now:
            max_seen_till_now = max_end_at_i
            max_left_till_now = max_left_at_i
            max_right_till_now = i + 1
    return max_left_till_now, max_right_till_now, max_seen_till_now

my_list = input('संख्याओं की सूची दर्ज करें... ')
my_list = my_list.split()
my_list = [int(x) for x in my_list]
beg, end, max_val = find_max_sub_array(my_list, 0, len(my_list))
print('अधिकतम सबएरे इंडेक्स {} से शुरू होता है, इंडेक्स {} पर समाप्त होता है और इसका योग {} है।'.format(beg, end - 1, max_val))

आउटपुट

संख्याओं की सूची दर्ज करें... 2 5 7 12 6 8
अधिकतम सबएरे इंडेक्स 0 से शुरू होता है, इंडेक्स 5 पर समाप्त होता है और इसका योग 40 है।

व्याख्या

  • 'find_max_sub_array' नामक एक विधि परिभाषित की जाती है जो तीन पैरामीटर लेती है।

  • दिए गए रेंज के भीतर मैक्सिमम सबएरे खोजा जाता है।

  • यह एक टपल लौटाता है जहां मैक्सिमम सबएरे के बाएं, दाएं इंडेक्स इसके योग के साथ लौटाए जाते हैं।

  • इंडेक्स i पर समाप्त होने वाले मैक्सिमम सबएरे पर नजर रखने के लिए एक लूप का उपयोग किया जाता है।

  • यह सभी सबएरे का मैक्सिमम है।

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

  • विधि के बाहर, संख्याओं की सूची उपयोगकर्ता द्वारा इनपुट के रूप में ली जाती है।

  • इसे पैरामीटर के रूप में विधि को पास किया जाता है।

  • इसे कंसोल पर आउटपुट के रूप में प्रदर्शित किया जाता है।


  1. पायथन में प्रिम के एल्गोरिथम का उपयोग करके MST ज्ञात करने का प्रोग्राम पायथन में प्रिम के एल्गोरिथम का उपयोग करके MST ज्ञात करने का प्रोग्राम

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

  1. पायथन का उपयोग करके अधिकतम संभावना वाले पथ को खोजने का प्रोग्राम पायथन का उपयोग करके अधिकतम संभावना वाले पथ को खोजने का प्रोग्राम

    मान लीजिए हमारे पास n नोड्स वाला एक अनिर्देशित भारित ग्राफ है (नोड्स 0 से क्रमांकित हैं)। यह ग्राफ एज लिस्ट के रूप में दिया गया है, प्रत्येक एज e के लिए, उस एज को पार करने की सफलता की संभावना probability[e] है। हमारे पास प्रारंभ और अंत नोड्स भी हैं, हमें प्रारंभ से अंत तक जाने के लिए अधिकतम सफलता स

  1. - पायथन प्रोग्राम: तीन नंबर्स में अधिकतम

    तीन नंबर a, b और c दिए गए हैं, हमारा कार्य दिए गए नंबरों में से अधिकतम एलिमेंट ढूंढना है।उदाहरणInput: a = 2, b = 4, c = 3 Output: 4एल्गोरिदमचरण 1: तीन यूजर इनपुट नंबर इनपुट करें। चरण 2: तीन नंबर्स को लिस्ट में जोड़ें। चरण 3: सबसे बड़ी संख्या खोजने के लिए max() फंक्शन का उपयोग करें max(lst)। चरण 4: औ