আমরা উপাদানগুলির একটি অ্যারে দিয়েছি, এবং আমাদেরকে উপাদানগুলিকে 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
উপসংহার
দ্বিতীয় পদ্ধতি যা আমরা আলোচনা করেছি তা সহজ এবং প্রথম পদ্ধতির তুলনায় কম সময় নেয়। টিউটোরিয়ালটিতে আপনার কোন সন্দেহ থাকলে, মন্তব্য বিভাগে উল্লেখ করুন।