এই নিবন্ধে, আমরা শিখতে যাচ্ছি কিভাবে প্রদত্ত সংখ্যার তালিকা থেকে সম্ভাব্য বৃহত্তম সংখ্যা খুঁজে বের করতে হয়। আমরা সমস্যা সমাধানের জন্য দুটি ভিন্ন উপায় দেখতে পাব। সমস্যা সমাধানের জন্য নিচের ধাপগুলো অনুসরণ করুন।
- পারমুটেশন পদ্ধতির জন্য itertools মডিউল আমদানি করুন।
- সংখ্যা এবং একটি খালি তালিকা দিয়ে তালিকাটি শুরু করুন।
- লিস্টের পারমুটেশনের উপর পুনরাবৃত্তি করুন।
- সমস্ত সংমিশ্রণে যোগ দিন এবং ফলাফলটি খালি তালিকায় যোগ করুন।
- পরিণাম থেকে সর্বাধিক সংখ্যাটি সর্বাধিক পদ্ধতি এবং int হিসাবে কী দিয়ে খুঁজুন।
- স্ট্রিংটিকে পূর্ণসংখ্যাতে রূপান্তর করুন এবং মুদ্রণ করুন।
উদাহরণ
আসুন কোডটি দেখি।
# importing the module
import itertools
# initializing the list
numbers = [45, 35, 138, 43, 67]
# result
result = []
# permutations
for permutation in itertools.permutations(str(number) for number in numbers):
result.append(''.join(permutation))
# finding max
maximum = max(result, key=int)
# printing the max
print(int(maximum)) আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
আউটপুট
67454335138
আসুন সমস্যা সমাধানের অন্য উপায় দেখি। আমরা সমস্যা সমাধানের জন্য ফাংশন সাজানো হবে. কোড লিখতে নিচের ধাপগুলো অনুসরণ করুন।
- তালিকাটি সাজানো ফাংশনে পাস করুন।
- গেট_কি নামে একটি ফাংশন লিখুন যা দুটি আর্গুমেন্ট গ্রহণ করে।
- রিটার্ন -1 যদি str(first) + str(second)> str(second) + str(first) else 1 হয়।
- যোগদান পদ্ধতি ব্যবহার করে উপাদানের তালিকায় যোগদান।
- একটি পূর্ণসংখ্যাতে রূপান্তর করে ফলাফল প্রিন্ট করুন।
যেহেতু আমরা একটি ফাংশনকে কী হিসেবে ব্যবহার করছি, আমাদেরকে ফাংশন থেকে cmp_to_key পদ্ধতি ব্যবহার করে কী-তে রূপান্তর করতে হবে। আসুন কোডটি দেখি।
উদাহরণ
from functools import cmp_to_key # initializing the list numbers = [45, 35, 138, 43, 67] def get_key(first, second): if str(first) + str(second) > str(second) + str(first): return -1 return 1 # getting the result result = sorted(numbers, key=cmp_to_key(get_key)) # joining the result result = "".join(str(integer) for integer in result) # printing the result print(int(result))
আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
আউটপুট
67454335138
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।