आप एक निर्दिष्ट सीमा [न्यूनतम, अधिकतम] के भीतर समान रूप से यादृच्छिक संख्या उत्पन्न करने के लिए एक विधि की तलाश करते हैं।
रैंड के साथ खामियां
रैंड() और मॉड्यूलस ऑपरेटर का उपयोग करके आपका वर्तमान कार्यान्वयन समान वितरण सुनिश्चित नहीं कर सकता है, क्योंकि इसका व्यवहार RAND_MAX और रेंज पर ही निर्भर करता है।
C 11 और यूनिफ़ॉर्म रेंज जेनरेशन
C 11 में, std::uniform_int_distribution इस आवश्यकता के अनुरूप एक समाधान प्रदान करता है :
#includestd::uniform_int_distribution distr(min, max); std::random_device rand_dev; std::mt19937 generator(rand_dev()); int random_number = distr(generator);
कंटेनर शफ़ल करना
एक कंटेनर को शफ़ल करने के लिए, std::shuffel का प्रयोग करें:
#include
#include#include std::vector vec = {4, 8, 15, 16, 23, 42}; std::random_device random_dev; std::mt19937 generator(random_dev()); std::shuffle(vec.begin(), vec.end(), generator);
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3