random number generator c
यह ट्यूटोरियल C ++ में रैंडम नंबर जेनरेट करने के लिए फंक्शंस रैंड () और सरैंड () के उपयोग के बारे में बताता है:
कई बार हमें अपने एप्लिकेशन में यादृच्छिक संख्याओं का उपयोग करने के लिए सिमुलेशन या गेम और अन्य अनुप्रयोगों का उत्पादन करना पड़ता है जिनमें यादृच्छिक घटनाओं की आवश्यकता होती है।
उदाहरण के लिए, पासे के खेल में, बिना रैंडम इवेंट्स के, हर बार जब हम पासा फेंकते हैं, तो अवांछनीय परिणाम देते हैं।
इस प्रकार यह आवश्यक हो जाता है कि हमारे निपटान में एक यादृच्छिक संख्या जनरेटर हो। भौतिक वातावरण में, हम यादृच्छिक घटनाओं को उत्पन्न कर सकते हैं लेकिन जब यह कंप्यूटर की बात आती है तो यह संभव नहीं है।
=> आसान सी ++ प्रशिक्षण श्रृंखला के माध्यम से पढ़ें।
ऐसा इसलिए है क्योंकि कंप्यूटर में सब कुछ बाइनरी है यानी 0 या 1 (सच्चा या गलत) और बीच में कुछ भी नहीं। इसलिए कंप्यूटर आमतौर पर अनुमानित घटनाएँ उत्पन्न करते हैं और यादृच्छिक घटनाओं को उत्पन्न करने में सक्षम नहीं होते हैं।
इसके बजाय, कंप्यूटर यादृच्छिकता का अनुकरण करते हैं जो कि उपयोग किया जाता है छद्म यादृच्छिक संख्या जनरेटर (PRNG) । C ++ में एक यादृच्छिक संख्या जनरेटर है और इसका उपयोग कई अनुप्रयोगों के साथ किया जा सकता है।
इस ट्यूटोरियल में, हम C ++ में यादृच्छिक संख्या उत्पन्न करने के लिए कार्यों / दृष्टिकोणों पर विस्तार से चर्चा करेंगे।
आप क्या सीखेंगे:
- सी ++ में छद्म-यादृच्छिक संख्या जनरेटर (PRNG)
- रैंड और सरंड फंक्शंस C ++ में
- रांड और () के बीच अंतर ()
- सी ++ रैंडम फ्लोट
- C ++ रैंडम नंबर 0 और 1 के बीच
- C ++ रैंडम नंबर 1 और 10 के बीच
- बार बार पूछे जाने वाले प्रश्न
- निष्कर्ष
- अनुशंसित पाठ
सी ++ में छद्म-यादृच्छिक संख्या जनरेटर (PRNG)
सामान्य तौर पर, एक छद्म यादृच्छिक संख्या जनरेटर (PRNG) को एक प्रोग्राम के रूप में परिभाषित किया जा सकता है जो एक बीज या एक प्रारंभिक संख्या लेता है और इसे कुछ अन्य संख्या में बदल देता है जो गणितीय कार्यों का उपयोग करके बीज से भिन्न होता है।
हर बार अंतिम उत्पन्न संख्या लेकर बार-बार इस प्रक्रिया को अंजाम दिया जाता है। हर बार उत्पन्न संख्या पिछली संख्याओं से असंबंधित होती है। इस प्रकार यह कार्यक्रम उन संख्याओं की एक श्रृंखला उत्पन्न करने में सक्षम है जो यादृच्छिक दिखाई देते हैं।
C ++ भाषा एक इन-बिल्ट छद्म-यादृच्छिक संख्या जनरेटर के साथ आती है और दो फ़ंक्शन रैंड () और सरैंड () प्रदान करती है जिसका उपयोग यादृच्छिक संख्या उत्पन्न करने के लिए किया जा सकता है।
आइए इन दोनों कार्यों पर विस्तार से चर्चा करें।
html साक्षात्कार प्रश्न और अनुभवी के लिए उत्तर
रैंड और सरंड फंक्शंस C ++ में
सरंड ()
समारोह प्रोटोटाइप: शून्य सरंड (अहस्ताक्षरित int बीज);
पैरामीटर: बीज - एक पूर्णांक मान को छद्म यादृच्छिक संख्या जनरेटर एल्गोरिथ्म द्वारा बीज के रूप में उपयोग किया जाना है।
प्रतिलाभ की मात्रा: कोई नहीं
विवरण: सरैंड फ़ंक्शन का उपयोग छद्म-यादृच्छिक संख्याओं के अनुक्रम को 'यादृच्छिक बीज' नामक पैरामीटर के साथ आरंभ करने के लिए किया जाता है। यह रैंड फ़ंक्शन के आउटपुट को यादृच्छिक बनाता है। अन्यथा, रैंड () फ़ंक्शन का आउटपुट हर बार जब हम इसे कहते हैं, तो वही होगा।
इस प्रकार, यदि हम srand () फ़ंक्शन के साथ यादृच्छिक संख्या जनरेटर को बीज देते हैं, तो यह उस बिंदु से जनरेटर को शुरू करेगा जो कि srand को दिए गए तर्क मान पर निर्भर है। यदि हम सिस्टम समय के साथ यादृच्छिक संख्या जनरेटर सेट करते हैं उदाहरण के लिए, रैंड () फ़ंक्शन के लिए पहली कॉल से पहले, फिर यह हर बार जब हम प्रोग्राम चलाते हैं तो रैंडम नंबर उत्पन्न करेंगे।
ध्यान दें कि हमें आमतौर पर रैंड () फ़ंक्शन को कॉल करने से पहले केवल एक बार सरंड () फ़ंक्शन को कॉल करने की आवश्यकता होती है और न कि हर बार जब हम यादृच्छिक संख्याओं को कॉल करते हैं।
रैंड ()
समारोह प्रोटोटाइप: int रैंड (शून्य);
पैरामीटर: कोई नहीं
प्रतिलाभ की मात्रा: 0 और RAND_MAX के बीच पूर्णांक मान।
विवरण: रैंड () फ़ंक्शन अनुक्रम में अगले यादृच्छिक संख्या उत्पन्न करता है। उत्पन्न संख्या 0 और RAND_MAX के बीच छद्म यादृच्छिक पूर्णांक है। RAND_MAX हेडर में एक स्थिर है जो आम तौर पर 32767 के मान पर सेट होता है।
#include #include #include int main() { std::srand(static_cast(std::time(nullptr))); for (int count=1; count <= 100; ++count) { std::cout << std::rand() << ' '; // display 5 random numbers per row if (count % 5 == 0) std::cout << '
'; } return 0; }
आउटपुट:
उपर्युक्त कार्यक्रम में, हमने पहले 100 यादृच्छिक संख्याओं को उत्पन्न किया है, जो सरंड फ़ंक्शन के लिए बीज के रूप में सिस्टम घड़ी प्रदान करते हैं। इस कार्यक्रम में, हमने सरंड और रैंड फ़ंक्शंस दोनों का उपयोग किया है। ध्यान दें कि बीज के रूप में सिस्टम घड़ी की वजह से, जब हम प्रोग्राम निष्पादित करते हैं, तो आउटपुट हर बार अलग होगा।
रांड और () के बीच अंतर ()
पंक्ति () | सरंड () |
---|---|
यादृच्छिक संख्या उत्पन्न करने के लिए उपयोग किया जाता है। | रैंड () फ़ंक्शन द्वारा उपयोग किए गए PRNG बीज। |
यादृच्छिक संख्याओं को उत्पन्न करने के लिए जितनी बार चाहें उतनी बार कॉल किया जाता है। | यादृच्छिक संख्या जनरेटर को देखने के लिए केवल एक बार कॉल किया जाता है। |
कोई तर्क नहीं देता | उस पैरामीटर को लेता है जिसका उपयोग यादृच्छिक संख्या जनरेटर को बीजने के लिए किया जाता है। |
जब भी इसे कहा जाता है हर बार यादृच्छिक संख्याओं का क्रम लौटाता है। | मान वापस नहीं करता है। |
सी ++ रैंडम फ्लोट
रैंड () फ़ंक्शन जिसे हमने डिफ़ॉल्ट रूप से ऊपर देखा है एक पूर्णांक मान देता है जो कुछ मामलों में अतिप्रवाह का कारण बन सकता है। इस प्रकार, हम फ्लोट या डबल मूल्य का उपयोग कर सकते हैं। हम रैंड () फ़ंक्शन से flo फ्लोट ’के रिटर्न मान को कास्टिंग करके फ्लोट यादृच्छिक संख्या उत्पन्न कर सकते हैं।
इस प्रकार निम्नलिखित फ्लोट 0.0 और 1.0 (दोनों समावेशी) के बीच एक यादृच्छिक संख्या उत्पन्न करेगा।
cout< इसी तरह, नीचे की रेखा 1.2 और 3.4 के बीच एक यादृच्छिक संख्या उत्पन्न करेगी
cout<<1.2 + static_cast (rand()) / ( static_cast (RAND_MAX/(3.4-1.2)));
नीचे हमारे बाद के उदाहरण में हम आउटपुट उत्पन्न करने के लिए यादृच्छिक फ्लोट का उपयोग करते हैं।
C ++ रैंडम नंबर 0 और 1 के बीच
हम 0 और 1. के बीच रैंडम नंबर जेनरेट करने के लिए srand () और रैंड () फंक्शन का उपयोग कर सकते हैं। ध्यान दें कि हमें रैंड () फंक्शन को दशमलव मान या फ्लोट या डबल में आउटपुट करना होगा।
रैंड () फ़ंक्शन का पूर्ण रिटर्न मान यानी पूर्णांक 0 और 1 के बीच यादृच्छिक संख्याओं को प्रदर्शित करने के लिए अपर्याप्त है जो अंश हैं।
नीचे दिए गए C ++ प्रोग्राम में 0 और 1 के बीच पहले पाँच रैंडम नंबर प्रदर्शित होते हैं।
कैसे नए उत्पादों के लिए एक परीक्षक बनने के लिए
#include #include using namespace std; int main() { cout<<'Random numbers generated between 0 and 1:'< उत्पादन :

हम देखते हैं कि प्रोग्राम का आउटपुट 0 और 1 के बीच यादृच्छिक संख्या है जो भिन्न हैं।
यदि हम फ्लोट या डबल करने के लिए रैंड () फ़ंक्शन के रिटर्न मान को नहीं डालते हैं, तो हमें 0 को यादृच्छिक संख्या के रूप में मिलेगा।
C ++ रैंडम नंबर 1 और 10 के बीच
अगला उदाहरण 1 और 10 के बीच यादृच्छिक संख्याओं को उत्पन्न करना है। निम्नलिखित सी ++ प्रोग्राम है जो यादृच्छिक संख्या उत्पन्न करता है।
हम सिस्टम घड़ी के साथ सरंड फ़ंक्शन को कॉल करते हैं और फिर मॉड्यूल 10 ऑपरेटरों के साथ रैंड फ़ंक्शन को कॉल करते हैं।
#include #include #include using namespace std; int main() { srand(time(0)); // Initialize random number generator. cout<<'Random numbers generated between 1 and 10:'< आउटपुट:

उपरोक्त कार्यक्रम में, हम 1 और 10. के बीच पहले 10 यादृच्छिक संख्याएँ उत्पन्न करते हैं। ध्यान दें कि हर बार कार्यक्रम चलने के बाद, यह सरंड फ़ंक्शन को कॉल करने के कारण संख्याओं के विभिन्न सेट उत्पन्न करेगा।
बार बार पूछे जाने वाले प्रश्न
Q # 1) C ++ में रैंडम फंक्शन के लिए हेडर फाइल क्या है?
उत्तर: यादृच्छिक संख्या, रैंड और सरैंड उत्पन्न करने के कार्यों को परिभाषित किया गया है< cstdlib > C ++ का हैडर।
Q # 2) C ++ में Rand_max क्या है?
उत्तर: RAND_MAX हेडर में एक स्थिरांक है जो आमतौर पर 32767 मान पर सेट होता है। छद्म यादृच्छिक संख्या जनरेटर (PRNG) 0 से RAND_MAX के बीच यादृच्छिक संख्या उत्पन्न करता है।
Q # 3) रैंडम फंक्शन कैसे काम करता है?
उत्तर: C ++ दो यादृच्छिक कार्यों का समर्थन करता है यानी srand () और रैंड ()। फ़ंक्शन सरैंड () रैंड () फ़ंक्शन द्वारा उपयोग किए गए यादृच्छिक संख्या जनरेटर को बीज देता है जो प्रदान किए गए प्रारंभिक बीज के आधार पर यादृच्छिक संख्या अनुक्रम उत्पन्न करता है।
Q # 4) आप समय के साथ कैसे आगे बढ़ते हैं?
उत्तर: रैंड () फ़ंक्शन द्वारा उपयोग किए जाने वाले छद्म-यादृच्छिक संख्या जनरेटर (PRNG) को सरंड फ़ंक्शन बीज देता है। बीज के रूप में समय (0) पर कॉल के परिणाम का उपयोग करने के लिए यह एक मानक अभ्यास है। यह समय फ़ंक्शन 00:00 घंटे, 1 जनवरी, 1970, UTC (वर्तमान UNIX टाइमस्टैम्प) के बाद से कई सेकंड के मान को लौटाता है।
इस प्रकार बीज का मूल्य हर सेकंड बदलता है। इसलिए हर बार जब सरंड को टाइम फ़ंक्शन के साथ बुलाया जाता है, तो यादृच्छिक संख्याओं का एक नया सेट उत्पन्न होता है।
निष्कर्ष
हमने इस ट्यूटोरियल में रैंडम नंबर जेनरेशन पर विस्तार से चर्चा की है। प्रोग्रामिंग भाषा या सामान्य कंप्यूटर में यादृच्छिक संख्या उत्पन्न नहीं करते हैं क्योंकि वे भविष्य कहनेवाला आउटपुट देने के लिए डिज़ाइन किए गए हैं। इसलिए, हमें यादृच्छिकता का अनुकरण करने की आवश्यकता है।
यादृच्छिकता का अनुकरण करने के लिए, हम छद्म यादृच्छिक संख्या जनरेटर (PRNG) का उपयोग करते हैं जो C ++ में अंतर्निहित है। इस प्रकार दो कार्यों, रैंड () और सरंड () का उपयोग करके हम C ++ में यादृच्छिक संख्या उत्पन्न कर सकते हैं।
फ़ंक्शन सरैंड () का उपयोग यादृच्छिक संख्या उत्पन्न करने के लिए बीज प्रदान करने के लिए किया जाता है जबकि रैंड () फ़ंक्शन अनुक्रम में अगले यादृच्छिक संख्या उत्पन्न करता है।
=> संपूर्ण सी ++ प्रशिक्षण श्रृंखला यहां देखें।
अनुशंसित पाठ
- कोड उदाहरणों के साथ सी # रैंडम नंबर और सी # रैंडम स्ट्रिंग जेनरेटर
- हाथों पर उदाहरण के साथ पायथन मेन फंक्शन ट्यूटोरियल
- यूनिक्स पाइप्स ट्यूटोरियल: यूनिक्स प्रोग्रामिंग में पाइप्स
- सी ++ में पुनरावृत्ति
- मित्र कार्य C ++ में
- C ++ में बहुरूपता
- C ++ में ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग
- OOP जावा: जावा में ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का परिचय