this पोस्ट के अनुसार, std::random_device
के साथ अंतर्ज्ञानी बीजिंग अपेक्षित परिणाम नहीं दे सकता है। विशेष रूप से, यदि मेर्सन ट्विस्टर इंजन का उपयोग किया जाता है, तो सभी प्रारंभिक राज्यों तक नहीं पहुंचा जा सकता है। Seed_seq का उपयोग करना या तो सहायक नहीं है, क्योंकि यह एक विभाजन नहीं है।मुझे सी ++ 11 std :: default_random_engine को सही तरीके से कैसे बीज करना चाहिए?
यह सब, जहां तक मैं समझता हूं, इसका मतलब है कि std::uniform_int_distribution
वास्तव में समान नहीं होगा - क्योंकि सभी बीज मूल्य संभव नहीं हैं।
मैं बस कुछ यादृच्छिक संख्या उत्पन्न करना चाहता हूं। हालांकि यह वास्तव में एक दिलचस्प विषय है जो मैं निश्चित रूप से अपने कुछ खाली समय को समर्पित करूंगा, कई लोगों को यह संभावना नहीं हो सकती है।
तो सवाल यह है कि: मुझे std::default_random_engine
को सही तरीके से कैसे बीज करना चाहिए ताकि यह केवल वही करे जो मुझे उम्मीद है?
स्टीफ़न टी Lavavej, माइक्रोसॉफ्ट के एसटीएल प्रत्यारोपण के लीड रखरखाव की सिफारिश है, इस बात में MT19937। वर्चुअल देखने के लायक भी https://channel9.msdn.com/events/GoingNative/2013/rand- माना जाता है- हानिकारक –
@ कुछ प्रोग्रामर dude डिफ़ॉल्ट_ बीज का उपयोग करते हैं यदि आप केवल डिफ़ॉल्ट निर्माण को '5489u' (mt19937 के लिए) के रूप में हार्डकोड किया गया है। एक निश्चित हार्डकोडेड बीज शायद ही कभी आप चाहते हैं। –
मुझे लगता है कि एक 'uniform_int_distribution' अभी भी वर्दी होगी हालांकि आप इसे बीज देते हैं। लेकिन बेहतर बीजिंग समान रूप से वितरित मूल्यों के समान अनुक्रम प्राप्त करने की संभावनाओं को कम कर सकती है। –