কম্পিউটার

C++ এ STL ব্যবহার করে একটি অ্যারে এলোমেলো করুন


এখানে আমরা C++ এ Shuffle এবং random_shuffle দেখতে পাব। এই ফাংশনগুলি C++ এ অ্যারে উপাদানগুলিকে এলোমেলো করতে ব্যবহৃত হয়। আমরা অ্যারের পরিবর্তে ভেক্টরও ব্যবহার করতে পারি, ব্যবহার একই রকম। আসুন প্রথমে random_shuffle() দেখি। এটি এলোমেলোভাবে উপাদানগুলিকে পরিসরে [বাম, ডানে) পুনর্বিন্যাস করতে ব্যবহৃত হয়। এই ফাংশনটি এলোমেলোভাবে নির্বাচিত কিছু অবস্থানের সাথে প্রতিটি উপাদানের অবস্থানগুলিকে অদলবদল করে৷

প্রতিটি ক্ষেত্রে কোন উপাদানটি নেওয়া হবে তা জানাতে আমরা কিছু র্যান্ডম জেনারেটর ফাংশন প্রদান করতে পারি। যদি আমরা কিছু প্রদান না করি, এটি তার নিজস্ব র্যান্ডম জেনারেটর ফাংশন ব্যবহার করবে৷

উদাহরণ

#include নেমস্পেস ব্যবহার করে std;int myRandomGenerator(int j) { return rand() % j;}main() { srand(unsigned(time(0))); ভেক্টর arr; জন্য (int j =1; j <20; ++j) //20টি সংখ্যা তৈরি করুন এবং ভেক্টর arr.push_back(j) এ যোগ করুন; random_shuffle(arr.begin(), arr.end()); // কাউট শাফেল করতে ইনবিল্ট র্যান্ডম ফাংশন ব্যবহার করুন <<"arr উপাদান:"; (ভেক্টর::iterator i =arr.begin(); i !=arr.end(); ++i) cout <<' ' <<*i; cout <::iterator i =arr.begin(); i !=arr.end(); ++i) cout <<' ' <<*i; cout < 

আউটপুট

 arr উপাদানগুলি:5 14 15 6 3 16 13 12 10 2 4 1 17 9 18 11 7 8 19 arr উপাদানগুলি:8 10 5 6 14 1 15 3 19 16 13 18 7 9 21 41  

এখন দেখা যাক shuffle() ফাংশন কি। এটি পরিসরে উপাদানগুলিকে পুনর্বিন্যাস করতেও ব্যবহৃত হয় [বাম, ডানে)। এলোমেলোভাবে এটি একটি অভিন্ন র্যান্ডম নম্বর জেনারেটর লাগে৷

উদাহরণ

#include  namespace ব্যবহার করে std;main() { vector arr; স্বাক্ষরবিহীন বীজ =0; জন্য (int j =1; j <20; ++j) //20টি সংখ্যা তৈরি করুন এবং ভেক্টর arr.push_back(j) এ যোগ করুন; shuffle(arr.begin(), arr.end(), default_random_engine(seed)); cout <<"arr উপাদান:"; (ভেক্টর::iterator i =arr.begin(); i !=arr.end(); ++i) cout <<' ' <<*i; cout < 

আউটপুট

 arr উপাদানগুলি:19 7 5 6 12 4 13 3 1 17 11 14 18 2 8 15 9 10 16

random_shuffle() এবং shuffle() এর মধ্যে একমাত্র পার্থক্য হল, random_shuffle() এলোমেলো সূচক তৈরি করতে rand() ফাংশন ব্যবহার করে এবং shuffle() ইউনিফর্ম র্যান্ডম নম্বর জেনারেটর ব্যবহার করে। যদিও, আমরা যদি random_shuffle() এর সাথে অভিন্ন র্যান্ডম নম্বর জেনারেটর পাস করি, তাহলে এটি কিছু ধরণের ফলাফল তৈরি করবে।


  1. C++ ব্যবহার করে একটি অ্যারের সমস্ত উপাদানের র‍্যাঙ্ক

  2. শুধুমাত্র C++ এ অ্যারে উপাদান ব্যবহার করে একটি অ্যারেকে সমান করুন

  3. একটি অ্যারে প্যালিনড্রোম কিনা বা C++ এ STL ব্যবহার করছে না তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. পয়েন্টার ব্যবহার করে একটি অ্যারের উপাদান অ্যাক্সেস করার জন্য C++ প্রোগ্রাম