खोज…


परिचय

रैंडम क्लास का उपयोग गैर-नकारात्मक छद्म-यादृच्छिक पूर्णांक उत्पन्न करने के लिए किया जाता है जो वास्तव में यादृच्छिक नहीं हैं, लेकिन सामान्य उद्देश्यों के लिए पर्याप्त हैं।

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

टिप्पणियों

अंत में, यादृच्छिककरण के बारे में एक नोट। जैसा कि पहले उल्लेख किया गया है, जब आप बिना किसी पैरामीटर के Random उदाहरण घोषित करते हैं, तो निर्माणकर्ता प्रारंभिक समय को बीज संख्या बनाने के लिए गणना के भाग के रूप में उपयोग करेगा। आम तौर पर यह ठीक है।

तथापि। यदि आप समय की बहुत कम जगह पर नए उदाहरणों को फिर से घोषित करते हैं, तो हर बार बीज संख्या की गणना की जाती है, समय समान हो सकता है। इस कोड पर विचार करें।

For i As Integer = 1 To 100000
    Dim rnd As New Random
    x = rnd.Next
Next

क्योंकि इन दिनों कंप्यूटर बहुत जल्दी होते हैं, यह कोड चलाने के लिए एक सेकंड का एक हिस्सा लेगा और लूप के कई निर्विवाद पुनरावृत्तियों पर, सिस्टम समय नहीं बदला होगा। तो, बीज संख्या नहीं बदलेगी और यादृच्छिक संख्या समान होगी। यदि आप बहुत सारे यादृच्छिक संख्याएँ उत्पन्न करना चाहते हैं, तो इस सरल उदाहरण में लूप के बाहर यादृच्छिक की आवृत्ति घोषित करें।

Dim rnd As New Random
For i As Integer = 1 To 100000
    x = rnd.Next
Next

अंगूठे का मूल नियम कम समय में यादृच्छिक संख्या जनरेटर को फिर से पलटना नहीं है।

एक उदाहरण की घोषणा

Dim rng As New Random()

यह rng नामक रैंडम वर्ग की एक आवृत्ति की घोषणा करता है। इस स्थिति में, उस बिंदु पर वर्तमान समय जहां ऑब्जेक्ट बनाया जाता है, बीज की गणना करने के लिए उपयोग किया जाता है। यह सबसे आम उपयोग है, लेकिन इसकी अपनी समस्याएं हैं जैसा कि हम टिप्पणी में बाद में देखेंगे

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

Dim rng As New Random(43352)

या

Dim rng As New Random(x)

जहां x को आपके प्रोग्राम में एक इंटेगर कॉन्स्टैंट या वेरिएबल के रूप में कहीं और घोषित किया गया है।

रैंडम की आवृत्ति से एक यादृच्छिक संख्या उत्पन्न करें

निम्न उदाहरण रैंडम वर्ग का एक नया उदाहरण वाणी और फिर विधि का उपयोग करता .Next छद्म यादृच्छिक संख्या के क्रम में अगला नंबर उत्पन्न करने के लिए।

Dim rnd As New Random
Dim x As Integer
x = rnd.Next

ऊपर अंतिम पंक्ति अगले छद्म यादृच्छिक संख्या उत्पन्न करेगी और इसे x असाइन करेगी। यह संख्या ० - २१४ will४ the३६४ However की सीमा में होगी। हालांकि, आप संख्याओं की सीमा को नीचे दिए गए उदाहरण के अनुसार उत्पन्न करने के लिए भी निर्दिष्ट कर सकते हैं।

x = rnd.Next(15, 200)

हालाँकि, कृपया ध्यान दें कि इन मापदंडों का उपयोग करते हुए, संख्याओं की सीमा 15 या उससे अधिक और 199 या उससे नीचे होगी।

तुम भी .NextDouble जैसे का उपयोग करके डबल के अस्थायी बिंदु संख्या उत्पन्न कर सकते हैं

Dim rnd As New Random
Dim y As Double
y = rnd.NextDouble()

हालाँकि आप इसके लिए कोई सीमा नहीं बता सकते। यह हमेशा 0.0 से 1.0 से कम की सीमा में रहेगा।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow