c++ - Usefulness of `rand()` - or who should call `srand()`? -
पृष्ठभूमि: मैं मैंने एक में भर दिया है, लेकिन मुझे जवाब मिला: पहले तब libxml2 आरंभ करें लाइब्रेरी से यह पूरी तरह कानूनी कॉल है आपको उम्मीद नहीं करनी चाहिए कि कोई अन्य यह वास्तव में मेरा प्रश्न अब है यदि सामान्य नीति यह है कि हर लिबिलिटी को यही कारण है कि मैंने सोचा, सामान्य (अलिखित) नीति यह है कि कोई लिब कभी भी मैंने भी कुछ शोध करने की कोशिश की जो अन्य पुस्तकालयों को वास्तव में मेरा वर्तमान समाधान इस बदसूरत कोड है: शायद ही एकमात्र साफ समाधान उस पर प्रयोग नहीं करेगा और केवल अपने स्वयं के यादृच्छिक जनरेटर (हो सकता है) का उपयोग करने के लिए होगा। लेकिन यह वास्तव में सवाल नहीं है सवाल है, जिसे इसके बजाय नया [संपादित करें] "उपयोगी" भाग का जवाब देने के लिए, rand () ,
std :: rand () का उपयोग करता / कोड>,
std :: random_shuffle () और वैज्ञानिक गणनाओं के लिए मेरे कोड में अन्य फ़ंक्शन अपने परिणामों को पुन: उत्पन्न करने के लिए, मैं हमेशा स्पष्ट रूप से यादृच्छिक बीज निर्दिष्ट करता हूं और इसे
srand () के माध्यम से सेट करता हूं। हाल ही में जब मैंने यह सोचा कि जब भी अपना पहला उपयोग -
srand () कॉल कॉल के बाद किया गया था -
srand () P>
srand () को कॉल नहीं करता है और मैन पेज कहीं नहीं कहता है कि
srand () का उपयोग करने से कई समय से बचा जाना चाहिए
srand () पर कॉल कर सकता / सकती है, और मैं इसे यहाँ और वहां भी कॉल कर सकता / सकती हूं, मुझे वास्तव में यह नहीं पता है कि यह कैसे उपयोगी हो सकता है । या फिर
रैंड () कैसे उपयोगी है?
srand () कोड> और एप्लिकेशन को केवल शुरुआत में एक बार कॉल करना चाहिए। (बहु-थ्रेडिंग को ध्यान में नहीं लेना) मुझे लगता है कि उस मामले में, आपको कुछ भी अलग तरह से उपयोग करना चाहिए।)
srand () कहते हैं , लेकिन मुझे कोई नहीं मिला क्या कोई भी है?
{// xmlDictCreate को पहली कॉल पर, // libxml2 कुछ आंतरिक यादृच्छिक सिस्टम को प्रारंभ करेगा, / / जो कि srand कॉल करता है (समय (नल))। // इसलिए, पहले यहां कॉल करें, ताकि हम अपने // अपने यादृच्छिक बीज का उपयोग कर सकें। XmlDictPtr p = xmlDictCreate (); xmlDictFree (पी); } Srand (my_own_seed);
srand () को कॉल करना चाहिए, और अगर हर कोई ऐसा करता है, तो
रैंड () कैसे उपयोगी है?
& lt; random & gt; हैडर का उपयोग करें यह कई इंजन उदाहरणों के लिए अनुमति देता है, अलग-अलग एल्गोरिदम का उपयोग कर और आपके लिए, स्वतंत्र बीज के लिए।
रैंड उत्पन्न यादृच्छिक संख्याएं यह वही है जो इसके लिए अच्छा है। यदि आपको प्रत्यावर्तनीयता सहित सुधरेदार नियंत्रण की आवश्यकता है, तो आपको केवल एक ज्ञात बीज ही नहीं होना चाहिए, बल्कि एक ज्ञात एल्गोरिदम।
srand सबसे अच्छे से आपको एक निश्चित बीज देता है, इसलिए यह एक पूर्ण समाधान नहीं है।
Comments
Post a Comment