मैं इस कोड के साथ बनाना चाहता हूं, यादृच्छिक 20-30 बार करने के लिए एकाधिक यादृच्छिक (यानी एक लूप) करने के लिए। ऐसा कैसे किया जा सकता था? और मैं +1 टेक्स्टबॉक्स के मूल्य को हर बार अगले यादृच्छिक चरण में बढ़ाना चाहता हूं।

TextBox1.Text = Val(TextBox1.Text) + 1

कोड:

   Dim strWords As String() = str1.Split(",")
        'Create an instance of the Random class
        Dim ValRnd As Integer = TxtNumRnd.Text
        Dim rnd As New Random(ValRnd)' (Values Random not worked)
        'Get a random number from 1 to 80  (2 digits)
        TextBox1.Text = Val(TextBox1.Text) + 1
        Dim randomNumber As Integer = rnd.Next(0, 81)
        If randomNumber = strWords(StrwrVal.Text) Then
            Exit For
        Else
            TxtRnd1.Text = TxtRnd1.Text & vbNewLine & randomNumber
        End If
    Next
Next

मान यादृच्छिक काम नहीं किया।

नए रैंडम के रूप में मंद रंड(5)'

-1
Lutfi Maulana 19 अक्टूबर 2019, 10:48

1 उत्तर

सबसे बढ़िया उत्तर

हालांकि यह सीधा जवाब नहीं हो सकता है, लेकिन इसे कुछ चीजों को स्पष्ट करने के लिए काम करना चाहिए।

रैंडम कंस्ट्रक्टर - जैसा कि मैंने टिप्पणियों में कहा है, New Random(5) का उपयोग करने से आपके लिए 5 यादृच्छिक संख्याओं का क्रम उत्पन्न नहीं होता है। यह बस आपके यादृच्छिक संख्या जनरेटर के लिए बीज सेट करता है। इसका मतलब यह है कि Random.Next() को कॉल करते समय आपके द्वारा जेनरेट की जाने वाली संख्याओं का क्रम उसी पैटर्न का अनुसरण करेगा, जिसमें सभी का बीज समान है (देखें उदाहरण)।

नोट: आदर्श रूप से, New Random() बनाते समय बीज मान नहीं सेट करें। वे वर्तमान समय का उपयोग डिफ़ॉल्ट बीज के रूप में किया जाएगा।


परिभाषित बीज के साथ लूप के अंदर एक नया रैंडम (x) बनाना

'Since random is declared inside the loop, using the same seed value 
'each time the loop executes, the same random sequence would be generated.
'Random.Next() will then continually access the first value in the sequence. 
For i = 1 To 5
    Dim rnd As New Random(5)
    TextBox1.AppendText($"{rnd.Next(0, 11)} | ")
Next

आउटपुट: 3 | 3 | 3 | 3 | 3


परिभाषित बीज के साथ लूप के बाहर एक नया रैंडम (x) बनाना

'Since random is now declared outside the loop, and Random.Next() is called
'inside the loop, the output sequence actually progresses.
'Note that the first number is the same as the previous example as the seed is the same. 
Dim rnd As New Random(5)
    For i = 0 To 5
    TextBox1.AppendText($"{rnd.Next(0, 11)} | ")
Next

आउटपुट: 3 | 3 | 2 | 6 | 5 | 10


नए रैंडम (x) के एकाधिक उदाहरण बनाना सभी समान बीज के साथ

        'Instance 1
        Dim rnd1 As New Random(5)
        For i = 0 To 5
            TextBox1.AppendText($"{rnd1.Next(0, 11)} | ")
        Next

        'Instance 2
        Dim rnd2 As New Random(5)
        For i = 0 To 5
            TextBox2.AppendText($"{rnd2.Next(0, 11)} | ")
        Next

        Instance 3
        Dim rnd3 As New Random(5)
        For i = 0 To 5
            TextBox3.AppendText($"{rnd3.Next(0, 11)} | ")
        Next

इंस्टेंस 1 आउटपुट: 3 | 3 | 2 | 6 | 5 | 10
इंस्टेंस 2 आउटपुट: 3 | 3 | 2 | 6 | 5 | 10
इंस्टेंस 3 आउटपुट: 3 | 3 | 2 | 6 | 5 | 10

1
Anu6is 24 अक्टूबर 2019, 02:58