কম্পিউটার

C++ এ আলেকজান্ডার বোগোমলনির আনঅর্ডারড পারমুটেশন অ্যালগরিদম


এখানে, আমাদের একটি নম্বর দেওয়া হয়েছে। আমাদের কাজ হল আলেকজান্ডার বোগোমোলনির আন-অর্ডারড পারমুটেশন অ্যালগরিদম ব্যবহার করে N-এর ক্রমানুবর্তিতা খুঁজে বের করা।

চলুন প্রথমে পারমুটেশন নিয়ে আলোচনা করা যাক,

একটি স্থানান্তর একটি সেটের একটি আইটেমকে কতগুলি উপায়ে অনন্যভাবে অর্ডার করা যায় তাকে বলা হয় পারমুটেশন।

উদাহরণ − {4,9,2}-এর পারমুটেশন হবে {4,9,2}, {4,2,9}, {9,4,2}, {9,2,4}, {2,4,9 } এবং {2,9,4}।

কম্পিউটার নেটওয়ার্কিং, সমান্তরাল প্রসেসিং এবং বিভিন্ন ক্রিপ্টোগ্রাফিক অ্যালগরিদমেও ব্যবহার করা হয়েছে।

আলেকজান্ডার বোগোমলনির আনঅর্ডারড পারমুটেশন অ্যালগরিদম

এই অ্যালগরিদম প্রথম N প্রাকৃতিক সংখ্যার সমস্ত সম্ভাব্য ক্রমাগত গণনা করে। একটি সংখ্যা N দেওয়া হলে, স্থানান্তরগুলি 1 থেকে N পর্যন্ত গণনা করা হয়।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

N =3

আউটপুট

1,2,3; 1,3,2; 2,1,3; 2,3,1; 3,1,2; 3,2,1

অ্যালগরিদম

<পূর্ব>1. একটি অ্যারে, সংখ্যা N, এবং একটি পূর্ণসংখ্যা k asparameters2 দিয়ে একটি ফাংশন তৈরি করুন। লেভেলটি আরম্ভ করুন, যেহেতু লেভেল বাড়লে বাকি মানগুলিকে পারমিউট করে। রিকারশন কন্ডিশনে পৌঁছে গেলে এর সমস্ত মান মুদ্রিত হয়।

উদাহরণ

আমাদের অ্যালগরিদম -

এর বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম
#include  namespace ব্যবহার করে std;int level =-1;void AlexanderBogomolyn(int permutations[], int N, int k) { স্তর =স্তর + 1; স্থানান্তর [k] =স্তর; যদি (স্তর ==N) { (int i =0; i  

আউটপুট

<পূর্ব>সমস্ত পারমুটেশনগুলি হল :1 2 3 41 2 4 31 3 2 41 4 2 31 3 4 21 4 3 22 1 3 42 1 4 33 1 2 44 1 2 33 1 4 24 1 3 1423 2 1 44 2 1 33 4 1 24 3 1 22 3 4 12 4 3 13 2 4 14 2 3 13 4 2 14 3 2 1

  1. C/C++ এ বার্কলের অ্যালগরিদম

  2. C++ এ বেলম্যান ফোর্ড অ্যালগরিদম?

  3. 1 থেকে N পর্যন্ত উপাদানগুলির জন্য আলেকজান্ডার বোগোমোলনির আনঅর্ডারড পারমুটেশন অ্যালগরিদম বাস্তবায়নের জন্য C++ প্রোগ্রাম

  4. আভিধানিকভাবে C++ এর পরবর্তী স্থানান্তর