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

डिवाइड और कॉनकर का उपयोग करके अधिकतम सबअरे समस्या को हल करने के लिए पायथन प्रोग्राम

जब यह आवश्यक हो, डिवाइड और जीत विधि का उपयोग करके अधिकतम सबएरे समस्या को हल करें,

नीचे उसी का प्रदर्शन है -

उदाहरण

def max_crossing_sum(my_array, low, mid, high):

   sum_elements = 0
   sum_left_elements = -10000

   for i in range(mid, low-1, -1):
   sum_elements = sum_elements + my_array[i]

   if (sum_elements > sum_left_elements):
      sum_left_elements = sum_elements

   sum_elements = 0
   sum_right_elements = -1000
   for i in range(mid + 1, high + 1):
      sum_elements = sum_elements + my_array[i]

      if (sum_elements > sum_right_elements):
         sum_right_elements = sum_elements

   return max(sum_left_elements + sum_right_elements, sum_left_elements, sum_right_elements)

def max_sub_array_sum(my_array, low, high):

   if (low == high):
      return my_array[low]

   mid = (low + high) // 2

   return max(max_sub_array_sum(my_array, low, mid), max_sub_array_sum(my_array, mid+1, high), max_crossing_sum(my_array, low, mid, high))

my_list = [23, 12, 45, 67, 89, 11]
list_length = len(my_list)
print("The list is :")
print(my_list)

max_sum = max_sub_array_sum(my_list, 0, list_length-1)
print("The maximum contiguous sum is ")
print(max_sum)

आउटपुट

The list is :
[23, 12, 45, 67, 89, 11]
The maximum contiguous sum is
247

स्पष्टीकरण

  • 'Max_crossing_sum' नाम की एक विधि परिभाषित की गई है जो सूची के बाईं ओर तत्वों के योग की गणना करती है।

  • यह 'max_sub_array_sum' का उपयोग करके प्राप्त किया जाता है जो प्रत्येक उप सरणी के योग की गणना करने में मदद करता है।

  • विधि के बाहर, एक सूची परिभाषित की जाती है, और कंसोल पर प्रदर्शित होती है।

  • सूची की लंबाई निर्धारित की जाती है।

  • इस सूची को पास करके उप सरणी के योग की गणना करने की विधि को कहा जाता है।

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


  1. पायथन का उपयोग करके एक अभिव्यक्ति वृक्ष बनाने और उसका मूल्यांकन करने का कार्यक्रम

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

  1. पायथन का उपयोग करके हम अधिकतम संख्या में सिक्के प्राप्त करने का कार्यक्रम प्राप्त कर सकते हैं

    मान लीजिए कि 3*n सिक्कों के ढेर मौजूद हैं, और वे अलग-अलग आकार के हैं, तीन खिलाड़ी जैसे खेल खेल रहे हैं - प्रत्येक चरण में, खिलाड़ी1 सिक्कों के किसी भी 3 ढेर का चयन करेगा। अपनी पसंद में से, प्लेयर2 सिक्कों की अधिकतम संख्या के साथ ढेर को चुनेगा। प्लेयर1 अगले ढेर को अधिकतम सिक्कों के साथ चुनेग

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

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