এই সেকশনে আমরা শিখব পাইথন প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে দেওয়া সিকোয়েন্সের পারমুটেশন ও কম্বিনেশন বের করার পদ্ধতি।
অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজের চেয়ে পাইথনের একটি বড় সুবিধা হল এটি এর সাথে অতি বিশাল লাইব্রেরি সেট দিয়ে আসে।
আমরা পাইথনের বিল্ট-ইন প্যাকেজ ব্যবহার করে দिये गये সিকোয়েন্সের পারমুটেশন ও কম্বিনেশন বের করব।
পারমুটেশন ও কম্বিনেশন বের করার অ্যালগরিদম:
ধাপ ১: প্রয়োজনীয় প্যাকেজ ইম্পোর্ট করুন। প্রথম ধাপ হল প্রয়োজনীয় প্যাকেজ ইম্পোর্ট করা। আমরা
itertoolsপ্যাকেজ ব্যবহার করব, তাই শুধু ইম্পোর্ট করুন:
>>> import itertools >>>
ধাপ ২: সিকোয়েন্সের সব পারমুটেশন ও কম্বিনেশন পান। دومর ধাপ হল সিকোয়েন্স/আইটেমের একটি লিস্ট ইনপুট হিসেবে দিন যা টাপলের লিস্ট আকারে সব পারমুটেশন ও কম্বিনেশন রিটার্ন করবে।
আমরা পারমুটেশন ও কম্বিনেশনের দৈর্ঘ্যও সেট করতে পারি।
ধাপ ৩: রেজাল্ট প্রিন্ট করুন। শেষ ধাপ হল সিকোয়েন্স সেটের সব পারমুটেশন ও কম্বিনেশন প্রিন্ট করা। লুপ ফাংশন ব্যবহার করে রেজাল্ট প্রিন্ট করা যায়।
পারমুটেশন (Permutation)
তিনটি আইটেমের লিস্টের পারমুটেশন বের করি।
উদাহরণ ১
from itertools import permutations
seq = permutations(['a', 'b', 'c'])
for p in list(seq):
print(p)
রেজাল্ট
('a', 'b', 'c')
('a', 'c', 'b')
('b', 'a', 'c')
('b', 'c', 'a')
('c', 'a', 'b')
('c', 'b', 'a')
উদাহরণ ২:
পারমুটেশনের দৈর্ঘ্য নির্দিষ্ট করে পারমুটেশন বের করি।
from itertools import permutations
seq = permutations(['p', 'y', 't', 'h', 'o', 'n'], 2)
for p in list(seq):
print(p)
রেজাল্ট
('p', 'y')
('p', 't')
('p', 'h')
('p', 'o')
('p', 'n')
('y', 'p')
('y', 't')
('y', 'h')
('y', 'o')
('y', 'n')
('t', 'p')
('t', 'y')
('t', 'h')
('t', 'o')
('t', 'n')
('h', 'p')
('h', 'y')
('h', 't')
('h', 'o')
('h', 'n')
('o', 'p')
('o', 'y')
('o', 't')
('o', 'h')
('o', 'n')
('n', 'p')
('n', 'y')
('n', 't')
('n', 'h')
('n', 'o')
কম্বিনেশন (Combinations)
পাইথন ব্যবহার করে সিকোয়েন্সের কম্বিনেশন বের করি।
উদাহরণ ১: কম্বিনেশনের দৈর্ঘ্য নির্ধারণ করুন
# Import itertools package
from itertools import combinations
# নির্দিষ্ট দৈর্ঘ্যের সব কম্বিনেশন পাওয়া
combi = combinations(['p', 'y', 't', 'h', 'o', 'n'], 5)
# কম্বিনেশন লিস্ট প্রিন্ট
for c in list(combi):
print(c)
রেজাল্ট
('p', 'y', 't', 'h', 'o')
('p', 'y', 't', 'h', 'n')
('p', 'y', 't', 'o', 'n')
('p', 'y', 'h', 'o', 'n')
('p', 't', 'h', 'o', 'n')
('y', 't', 'h', 'o', 'n')
উদাহরণ ২: রিপ্লেসমেন্টসহ কম্বিনেশন (Combinations with replacements)
# Import itertools package
from itertools import combinations_with_replacement
# নির্দিষ্ট দৈর্ঘ্যের সব কম্বিনেশন পাওয়া
combi = combinations_with_replacement(['p', 'y', 't', 'h', 'o', 'n'], 2)
# কম্বিনেশন লিস্ট প্রিন্ট
for c in list(combi):
print(c)
রেজাল্ট
('p', 'p')
('p', 'y')
('p', 't')
('p', 'h')
('p', 'o')
('p', 'n')
('y', 'y')
('y', 't')
('y', 'h')
('y', 'o')
('y', 'n')
('t', 't')
('t', 'h')
('t', 'o')
('t', 'n')
('h', 'h')
('h', 'o')
('h', 'n')
('o', 'o')
('o', 'n')
('n', 'n')