यहां हम C++ में Shuffle और random_shuffle देखेंगे। आइए पहले random_shuffle देखें। इसका उपयोग तत्वों को [बाएं, दाएं] श्रेणी में बेतरतीब ढंग से पुनर्व्यवस्थित करने के लिए किया जाता है। यह फ़ंक्शन बेतरतीब ढंग से चुने गए कुछ पदों की स्थिति के साथ प्रत्येक तत्व की स्थिति को बेतरतीब ढंग से स्वैप करता है।
हम यह बताने के लिए कुछ यादृच्छिक जनरेटर फ़ंक्शन प्रदान कर सकते हैं कि प्रत्येक मामले में कौन सा तत्व लिया जाएगा। अगर हम कुछ प्रदान नहीं करते हैं, तो यह अपने स्वयं के यादृच्छिक जनरेटर फ़ंक्शन का उपयोग करेगा।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
int myRandomGenerator(int j) {
return rand() % j;
}
main() {
srand(unsigned(time(0)));
vector<int> arr;
for (int j = 1; j < 20; ++j) //generate 20 numbers and add them into vector arr
arr.push_back(j);
random_shuffle(arr.begin(), arr.end()); //use inbuilt random function to shuffle
cout << "arr elements:";
for (vector<int>::iterator i = arr.begin(); i != arr.end(); ++i)
cout << ' ' << *i;
cout << endl;
// using myRandomGenerator
random_shuffle(arr.begin(), arr.end(), myRandomGenerator);
cout << "arr elements:";
for (vector<int>::iterator i = arr.begin(); i != arr.end(); ++i)
cout << ' ' << *i;
cout << endl;
} आउटपुट
arr elements: 5 14 15 6 3 16 13 12 10 2 4 1 17 9 18 11 7 8 19 arr elements: 8 10 5 6 14 1 15 3 19 16 13 18 7 9 4 12 11 17 2
अब देखते हैं कि शफल () फंक्शन क्या है। इसका उपयोग तत्वों को श्रेणी [बाएं, दाएं) में पुनर्व्यवस्थित करने के लिए भी किया जाता है। बेतरतीब। यह एक समान यादृच्छिक संख्या जनरेटर लेता है।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
main() {
vector<int> arr;
unsigned seed = 0;
for (int j = 1; j < 20; ++j) //generate 20 numbers and add them into vector arr
arr.push_back(j);
shuffle(arr.begin(), arr.end(), default_random_engine(seed));
cout << "arr elements:";
for (vector<int>::iterator i = arr.begin(); i != arr.end(); ++i)
cout << ' ' << *i;
cout << endl;
} आउटपुट
arr elements: 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() के साथ एकसमान यादृच्छिक संख्या जनरेटर पास करते हैं, तो यह उसी तरह के परिणाम उत्पन्न करेगा।