हमें तत्वों का एक ऐरे दिया गया है, और हमें उन सभी को 1 से बढ़ाकर बराबर बनाना है। हमें प्रत्येक चरण में n - 1 तत्व बढ़ाने की अनुमति है। हमारा लक्ष्य सभी ऐरे तत्वों को बराबर बनाने के लिए आवश्यक कुल ऑपरेशंस की संख्या की गणना करना है।
उदाहरण के लिए, यदि आप सूची [1, 2, 3] लेते हैं, तो सभी तत्वों को बराबर बनाने में तीन ऑपरेशन लगे। एक समाधान है। प्रत्येक चरण में सबसे बड़ी संख्या खोजें और बाकी तत्वों को 1 से बढ़ाएं। आइए कोड लिखें।
उदाहरण
def main():
# ऐरे इनिशियलाइज़ करना
arr = [1, 2, 3]
# ऑपरेशंस काउंट को 0 से इनिशियलाइज़ करना
no_of_operations = 0
flag = 0
# ऐरे पर ऑपरेशन करना ताकि वे बराबर हो जाएं
while not are_equal(arr):
flag = 1
# सूची से अधिकतम खोजना
maximum = max(arr)
# अधिकतम को छोड़कर सभी तत्वों को बढ़ाना
for i in range(len(arr)):
if arr[i] != maximum:
arr[i] += 1
# ऑपरेशंस काउंट को 1 से बढ़ाना
no_of_operations += 1
print(no_of_operations) if flag == 0 else print(no_of_operations + 1)
# जांचना कि सभी तत्व बराबर हैं या नहीं
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
उपरोक्त विधि बड़े ऐरे के लिए गणना में अधिक समय लेती है। हम ऐरे के योग और सबसे छोटे तत्व को खोजकर ऑपरेशंस की संख्या पता लगा सकते हैं।
- ऐरे का योग खोजें।
- ऐरे में सभी तत्वों में सबसे छोटा खोजें।
- अभिव्यक्ति sum - (length - smallest) से प्राप्त मान प्रिंट करें।
उदाहरण
नीचे कोड देखें।
# एक ऐरे इनिशियलाइज़ करना arr = [1, 2, 3] # लंबाई length = len(arr) # ऐरे तत्वों का योग elements_sum = sum(arr) # सभी तत्वों में सबसे छोटा smallest = min(arr) # ऑपरेशंस की संख्या की गणना करना print(elements_sum - (length * smallest))
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम मिलेंगे।
3
निष्कर्ष
हमने जिस दूसरी विधि पर चर्चा की, वह आसान है और पहली विधि की तुलना में कम समय लेती है। यदि ट्यूटोरियल में आपको कोई संदेह है, तो उन्हें कमेंट सेक्शन में बताएं।