এখানে আমরা C++ এ Shuffle এবং random_shuffle দেখতে পাব। আসুন প্রথমে 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 17>এখন দেখা যাক shuffle() ফাংশন কি। এটি পরিসরে উপাদানগুলিকে পুনর্বিন্যাস করতেও ব্যবহৃত হয় [বাম, ডানে)। এলোমেলোভাবে এটি একটি অভিন্ন র্যান্ডম নম্বর জেনারেটর লাগে৷
৷উদাহরণ
#includenamespace ব্যবহার করে 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 16random_shuffle() এবং shuffle() এর মধ্যে একমাত্র পার্থক্য হল, random_shuffle() এলোমেলো সূচক তৈরি করতে rand() ফাংশন ব্যবহার করে এবং shuffle() ইউনিফর্ম র্যান্ডম নম্বর জেনারেটর ব্যবহার করে। যদিও, আমরা যদি random_shuffle() দিয়ে অভিন্ন র্যান্ডম নম্বর জেনারেটর পাস করি, তাহলে এটি একই ধরনের ফলাফল তৈরি করবে।