लूप पुनरावृत्तियों के भीतर समान यादृच्छिक संख्याएं
आपके लूप में जो 15 बार निष्पादित होता है, आपने प्रत्येक पुनरावृत्ति में dh.setDoors() को लागू किया है। इस फ़ंक्शन के अंदर, छद्म-यादृच्छिक संख्याओं की पीढ़ी शुरू करने के लिए srand(time(0)) को बुलाया जाता है। हालाँकि, लूप के भीतर रैंड() पर बाद की कॉल के परिणामस्वरूप सभी 15 पुनरावृत्तियों में कारसेटर और डिकोडर के निरंतर मान होते हैं।
यह व्यवहार इसलिए होता है क्योंकि srand(time(0)) आधारित यादृच्छिक संख्या जनरेटर के लिए बीज सेट करता है वर्तमान समय पर. चूंकि लूप तेजी से निष्पादित होता है, समय(0) हर बार समान मान लौटाता है, जिसके परिणामस्वरूप छद्म-यादृच्छिक संख्याओं का समान क्रम होता है।
इस समस्या को दूर करने के लिए, केवल srand(time(0) को कॉल करने की अनुशंसा की जाती है )) कार्यक्रम की शुरुआत में एक बार, आम तौर पर एक प्रक्रिया का पालन किया जाता है जैसे:
srand(time(0));
for (int i = 0; i इस आरंभीकरण को केवल एक बार निष्पादित करके, छद्म-यादृच्छिक संख्या जनरेटर लूप के प्रत्येक पुनरावृत्ति के लिए संख्याओं का एक अद्वितीय अनुक्रम उत्पन्न करेगा, जिससे कारसेटर और निर्णायक के मूल्यों में अपेक्षित भिन्नता उत्पन्न होगी।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3