हमने तत्वों की एक सरणी दी है, और हमें तत्वों को 1 से बढ़ाकर उन सभी को समान बनाना है। हमें प्रत्येक चरण में n - 1 तत्व को बढ़ाने की अनुमति है। हमारा लक्ष्य सभी सरणी तत्वों को समान बनाने के लिए आवश्यक संचालन की कुल संख्या की गणना करना है।
उदाहरण के लिए, यदि आप सूची [1, 2, 3] लेते हैं, तो सभी तत्वों को समान बनाने के लिए तीन ऑपरेशन किए गए। समस्या का एक ही समाधान है। प्रत्येक चरण में सबसे महत्वपूर्ण संख्या ज्ञात कीजिए और शेष तत्वों को 1 से बढ़ाइए। आइए कोड लिखें।
उदाहरण
def main(): # intializing the array arr = [1, 2, 3] # initializing operations count to 0 no_of_operations = 0 flag = 0 # performing the operations on array to make them equal while not are_equal(arr): flag = 1 # finding the maximum from the list maximum = max(arr) # incrementing all the elements except maximum for i in range(len(arr)): if arr[i] != maximum: arr[i] += 1 # incrementing the operations count by 1 no_of_operations += 1 print(no_of_operations) if flag == 0 else print(no_of_operations + 1) # checking whether all the elements are equal or not def are_equal(arr): global no_of_operations for i in range(len(arr) - 1): if arr[i] != arr[i + 1]: return False return True if __name__ == '__main__': main()
आउटपुट
यदि आप उपरोक्त कार्यक्रम चलाते हैं, तो आपको निम्नलिखित परिणाम प्राप्त होंगे।
3
उपरोक्त विधि बड़ी सरणियों के लिए गणना करने में अधिक समय लेती है। हम सरणी के योग और सबसे छोटे तत्व का पता लगाकर संक्रियाओं की संख्या ज्ञात कर सकते हैं।
- सरणी का योग ज्ञात कीजिए।
- सरणी में सभी तत्वों में से सबसे छोटा तत्व खोजें।
- व्यंजक योग से प्राप्त मान प्रिंट करें - (लंबाई - सबसे छोटा) ।
उदाहरण
नीचे दिए गए कोड को देखें।
# initializing an array arr = [1, 2, 3] # length length = len(arr) # sum of element fo the array elements_sum = sum(arr) # smallest among all the elements smallest = min(arr) # calculating the number of operations print(elements_sum - (length * smallest))
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
3
निष्कर्ष
दूसरी विधि जिसकी हमने चर्चा की वह आसान है और पहली विधि की तुलना में कम समय लेती है। यदि आपको ट्यूटोरियल में कोई संदेह है, तो टिप्पणी अनुभाग में उनका उल्लेख करें।