Hallo zusammen,
leider hat mir die Suchen-Funktion keine sinnvollen Ergebnisse geliefert. Deshalb poste ich meine Frage mal hier.Es ist glaub ich erwähnenswert, dass ich noch ein ziemlicher Anfänger bin.
Ich möchte aus einer vorgegeben Zahlenmenge nach dem Zufallsprinzip eine kleinere Zahlenmenge auswählen. Z. B. möchte ich 500 Zahlen haben, die zwischen 0 und 1000 liegen. Das habe ich auch mit folgender Lösung geschafft.
Mein Problem ist, dass dabei keine Zahl doppelt vorkommen darf.
Ich finde keine vernünftige Lösung sicherzustellen, dass mein erzeugtes Array wirklich aus 500 verschiedenen Zufallszahlen besteht.
Ich habe folgendes versucht, aber das klappt beim durchrechnen nicht, obwohl keine Fehlermeldung auftaucht.
Vielleicht kann mir ja jemand helfen.
Viele Grüße
leider hat mir die Suchen-Funktion keine sinnvollen Ergebnisse geliefert. Deshalb poste ich meine Frage mal hier.Es ist glaub ich erwähnenswert, dass ich noch ein ziemlicher Anfänger bin.
Ich möchte aus einer vorgegeben Zahlenmenge nach dem Zufallsprinzip eine kleinere Zahlenmenge auswählen. Z. B. möchte ich 500 Zahlen haben, die zwischen 0 und 1000 liegen. Das habe ich auch mit folgender Lösung geschafft.
Code:
Dim i As Integer
Dim Anzahl_gesamt As Integer =1000
Dim Anzahl_zufall As Integer = 500
Dim Random(Anzahl_zufall) As Integer
For i=0 to Anzahl_zufall
Randomize()
Random (i) = Cint(Int(Rnd()*Anzahl_gesamt))
next
Mein Problem ist, dass dabei keine Zahl doppelt vorkommen darf.
Ich finde keine vernünftige Lösung sicherzustellen, dass mein erzeugtes Array wirklich aus 500 verschiedenen Zufallszahlen besteht.
Ich habe folgendes versucht, aber das klappt beim durchrechnen nicht, obwohl keine Fehlermeldung auftaucht.
Code:
Dim Anzahl_gesamt As Integer =1000
Dim Anzahl_zufall As Integer =500
Dim Random(Anzahl_zufall) As Integer
Dim i,k As Integer
For i = 0 To Anzahl_zufall
Randomize()
Random(i) = CInt(Int(Rnd() * Anzahl_gesamt))
For k = 0 To i
Do Until k = i
Do While Random(i) <> Random(k)
Randomize()
Random(i) = CInt(Int(Rnd() * Anzahl_gesamt))
Loop
Loop
Next
Next
Vielleicht kann mir ja jemand helfen.
Viele Grüße
Zuletzt bearbeitet: