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

मेरी यादृच्छिक संख्याएँ एक लूप के भीतर सुसंगत क्यों हैं?

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

Why are my random numbers consistent within a loop?

पुनरावृत्तियों में सुसंगत यादृच्छिक संख्याओं को समझना

प्रदान किए गए कोड स्निपेट में, यह देखा गया है कि लूप पुनरावृत्ति के भीतर उत्पन्न यादृच्छिक संख्याएं सुसंगत रहती हैं। विशेष रूप से, 'कारसेटर' और 'निर्णायक' चर अद्वितीय मान उत्पन्न करने के उद्देश्य से लूप के बावजूद 15 पुनरावृत्तियों में समान मान बनाए रखते हैं।

यह व्यवहार लूप के भीतर srand(time(0)) की नियुक्ति के कारण उत्पन्न होता है . यह रैंड() पर बाद की कॉलों में लौटाए गए छद्म यादृच्छिक संख्याओं के अनुक्रम को निर्धारित करता है। समस्या इस तथ्य में निहित है कि समय (0) आमतौर पर लूप के निष्पादन के दौरान समान मान लौटाता है, जिससे यादृच्छिक संख्याओं की एक सुसंगत श्रृंखला उत्पन्न होती है।

इस समस्या को सुधारने और वास्तविक यादृच्छिकता सुनिश्चित करने के लिए, यह प्रारंभिक कॉल को लूप के बाहर srand(time(0)) पर ले जाना महत्वपूर्ण है। ऐसा करने से, आप यादृच्छिक संख्या जनरेटर को केवल एक बार आरंभ करते हैं, यह सुनिश्चित करते हुए कि यादृच्छिक संख्याओं का क्रम पुनरावृत्तियों में महत्वपूर्ण रूप से भिन्न होता है। निम्नलिखित कोड इस सुधार को प्रदर्शित करता है:

srand(time(0)); // Called once at the program's start

for (int i = 0; i 

यह संशोधन लूप को प्रत्येक पुनरावृत्ति के साथ इच्छित यादृच्छिक संख्या उत्पन्न करने की अनुमति देता है। ध्यान दें कि लूप के भीतर srand() को कॉल करना अनावश्यक है क्योंकि छद्म यादृच्छिक संख्या जनरेटर अद्वितीय मान उत्पन्न करना जारी रखेगा जब तक कि आप इसे srand() पर किसी अन्य कॉल के साथ स्पष्ट रूप से रीसेट नहीं करते।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3