Willekeurig getal kiezen uit Array?

Status
Niet open voor verdere reacties.

Samdeezel

Gebruiker
Lid geworden
8 aug 2011
Berichten
61
ik wil dat mijn console 3 willekeurige getallen kiest uit een array waar er getalle in zitten:s er komt altijd error
[CPP]

Module mdlKiezen
Sub main()
Dim objGetallen As New Random
Dim arrGetallen() As String = New String(49) {"6", "12", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "32", "38", "40", "41", "42", "44", "45", "47", "50", "52", "57", "58", "59", "60", "62", "63", "64", "65", "68", "69", "70", "71", "73", "76", "78", "83", "85", "86", "89", "92", "96"}
Dim strWillekeurigeWilekeuriggetal As String

For i = 1 To 3
'wat moet hier dan normaal is dit zo iets bij random maar nu met array:confused: '
'strWillekeurigeWilekeuriggetal= objGetallen.next(0,10)'
Next

End Sub
End Module[/CPP]
 
[CPP]Dim objGetallen As New Random
Dim arrGetallen() As String = New String(49) {"6", "12", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "32", "38", "40", "41", "42", "44", "45", "47", "50", "52", "57", "58", "59", "60", "62", "63", "64", "65", "68", "69", "70", "71", "73", "76", "78", "83", "85", "86", "89", "92", "96"}
Dim strWillekeurigeWilekeuriggetal As Integer

For i = 1 To 3
strWillekeurigeWilekeuriggetal = objGetallen.Next(0, 48)
Console.WriteLine(arrGetallen(strWillekeurigeWilekeuriggetal))
Next

Console.ReadKey()[/CPP]

Output:

29998603.jpg


:)
 
Laatst bewerkt:
@hierboven,

Ik snap echt niet waarom je dat random getal steeds weer opslaat in een variabele. Waarom niet meteen met dit getal handelen?

Ook is het beste niet 48 te gebruiken, want als de array een keertje groter of kleiner gemaakt word komen er weer fouten of is de kans niet gelijk. In plaats daarvan kan je het beste de lengte van 'arrGetallen' opvragen.
Zoals je hier kan zien is de range/lengte van de array helemaal niet 48, maar 50.
6XVMI.png


For i = 1 To 3? 3 word dan door Visual Basic automatisch het type van Integer gegeven. Je kan het beter gewoon neerzetten dat je i als integer wilt, in plaats van afgaan op de beslissing van de IDE/Compiler. Als je zo later op je werk gaat programmeren met talen zoals C/C++/C# etc, kan je een shi tload fouten verwachten.

PHP:
        Dim rnd As New Random()
        Dim arrGetallen As String() = {"6", "12", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "32", "38", "40", "41", "42", "44", "45", "47", "50", "52", "57", "58", "59", "60", "62", "63", "64", "65", "68", "69", "70", "71", "73", "76", "78", "83", "85", "86", "89", "92", "96"}

        For i As Integer = 1 To 3
            Console.WriteLine(arrGetallen(rnd.Next(0, arrGetallen.Length)))
        Next

        Console.Read()
 
Laatst bewerkt:
@CaptainBri: Je hebt idd gelijk, ik denk dat ik iets te snel de code van Samdeezel heb aangepast. :o
 
ik zou de code graag wat willen aan passen maar heb geen flauw idee met kansrekenen enzo
dus ik zou eens willen proberen dat mijn console 100 keer 3 getallen neemt uit de array
en dan naast alle getallen in de array
bv:
Getal 6= 20Keer Gekozen
Getal 20= 5Keer Gekozen
.......
en zo verder voor alle getallen in de array
is dit mogelijk?

met vriendelijk groeten

Deezel
 
Hierbij is het dan wel handig om een indexer in een variabele op te slaan.

PHP:
        Dim rnd As New Random()
        Dim arrGetallen As String() = {"6", "12", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "32", "38", "40", "41", "42", "44", "45", "47", "50", "52", "57", "58", "59", "60", "62", "63", "64", "65", "68", "69", "70", "71", "73", "76", "78", "83", "85", "86", "89", "92", "96"}
        Dim AantalKeren(arrGetallen.Length) As Integer
        Dim RandomIndex As Integer

        For i As Integer = 1 To 300
            RandomIndex = rnd.Next(0, arrGetallen.Length)
            Console.WriteLine(arrGetallen(RandomIndex))
            AantalKeren(RandomIndex) += 1
        Next

        Console.WriteLine("-------------------------------")
        Console.WriteLine("Na 300 keer een random getal gekozen te hebben, de resultaten:")

        For i As Integer = 0 To arrGetallen.Length - 1
            Console.WriteLine("Het getal: " & arrGetallen(i) & " komt " & Convert.ToString(AantalKeren(i)) & "x voor.")
        Next

        Console.Read()

Dit geeft het resultaat:

TIVY9.gif
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan