কম্পিউটার

পাইথনে একটি সেটের সমস্ত স্থানান্তর তৈরি করবেন?


গণিতে, একটি সেটের সমস্ত সদস্যকে কিছু ক্রম বা ক্রমানুসারে সাজানো এবং সেটটি ইতিমধ্যেই অর্ডার করা থাকলে, এর উপাদানগুলিকে পুনর্বিন্যাস (পুনঃবিন্যাস) করাকে বলা হয় পারমুটেশন। আমরা বিভিন্ন কৌশল ব্যবহার করে পারমুটেশন তৈরি করতে পারি। নীচে তাদের কিছু,

পদ্ধতি 1

Python ইটারটুল নামক পারমুটেশন এবং কম্বিনেশনের জন্য ডেডিকেটেড মডিউল নিয়ে আসে।

প্রথমে মডিউল আমদানি করুন

>>> import itertools
>>>

পারমুটেশন ফাংশন আমাদেরকে একটি তালিকার মধ্যে N মানের স্থানান্তর পেতে দেয়, যেখানে অর্ডার গুরুত্বপূর্ণ। উদাহরণ স্বরূপ, [1,2,3,4] সহ N =2 মান নির্বাচন এইভাবে করা হয় −

Permutation (order matters):
>>> print(list(itertools.permutations([1,2,3,4],2)))
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]

কম্বিনেশন (অর্ডার কোন ব্যাপার না)

>>> print(list(itertools.combinations('1234', 2)))
[('1', '2'), ('1', '3'), ('1', '4'), ('2', '3'), ('2', '4'), ('3', '4')]

পদ্ধতি 2

নীচে নতুন মধ্যবর্তী তালিকা তৈরি না করে একটি তালিকায় বাস্তবায়ন করা হয়েছে৷

def permute(xs, low=0):
if low + 1 >= len(xs):
yield xs
else:
for p in permute(xs, low + 1):
yield p
for i in range(low + 1, len(xs)):
xs[low], xs[i] = xs[i], xs[low]
for p in permute(xs, low + 1):
yield p
xs[low], xs[i] = xs[i], xs[low]
for p in permute([1, 2, 3]):
print (p)

আউটপুট

[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 2, 1]
[3, 1, 2]

পদ্ধতি 3 পুনরাবৃত্তি ব্যবহার করে

import copy
def perm(prefix,rest):
for e in rest:
new_rest=copy.copy(rest)
new_prefix=copy.copy(prefix)
new_prefix.append(e)
new_rest.remove(e)
if len(new_rest) == 0:
print (new_prefix + new_rest)
continue
perm(new_prefix,new_rest)
perm([],[1, 2, 3])

আউটপুট

[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]

  1. পাইথন প্রোগ্রাম 1 থেকে n পর্যন্ত সমস্ত সংখ্যায় মোট সেট বিট গণনা করে।

  2. পাইথন সেট অপারেশন।

  3. পাইথনে একটি তালিকার সমস্ত স্থানান্তর কীভাবে তৈরি করবেন?

  4. পাইথন সেট