কম্পিউটার

C++ এ শাফেল বনাম এলোমেলো_শাফেল


এখানে আমরা 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  

এখন দেখা যাক 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++ এ ডায়াগোনাল ট্রাভার্স II

  3. C++ এ কিল প্রসেস

  4. C++ এ কাঠবিড়ালি সিমুলেশন