"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं C++ में एक विशिष्ट सीमा के भीतर समान रूप से वितरित यादृच्छिक संख्याएँ कैसे उत्पन्न कर सकता हूँ?

मैं C++ में एक विशिष्ट सीमा के भीतर समान रूप से वितरित यादृच्छिक संख्याएँ कैसे उत्पन्न कर सकता हूँ?

2024-12-21 को प्रकाशित
ब्राउज़ करें:507

How Can I Generate Uniformly Distributed Random Numbers Within a Specific Range in C  ?

एक सीमा में एक समान यादृच्छिक संख्या उत्पन्न करना

आप एक निर्दिष्ट सीमा [न्यूनतम, अधिकतम] के भीतर समान रूप से यादृच्छिक संख्या उत्पन्न करने के लिए एक विधि की तलाश करते हैं।

रैंड के साथ खामियां

रैंड() और मॉड्यूलस ऑपरेटर का उपयोग करके आपका वर्तमान कार्यान्वयन समान वितरण सुनिश्चित नहीं कर सकता है, क्योंकि इसका व्यवहार RAND_MAX और रेंज पर ही निर्भर करता है।

C 11 और यूनिफ़ॉर्म रेंज जेनरेशन

C 11 में, std::uniform_int_distribution इस आवश्यकता के अनुरूप एक समाधान प्रदान करता है :

#include 

std::uniform_int_distribution distr(min, max);
std::random_device rand_dev;
std::mt19937 generator(rand_dev());

int random_number = distr(generator);

कंटेनर शफ़ल करना

एक कंटेनर को शफ़ल करने के लिए, std::shuffel का प्रयोग करें:

#include #शामिल std::vector vec = {4, 8, 15, 16, 23, 42}; std::random_device रैंडम_dev; std::mt19937 जनरेटर(random_dev()); std::shuffle(vec.begin(), vec.end(), generate);

Boost.Random

#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