fb:porticula NoPaste
Zufallsziehung ohne Zurücklegen
Uploader: | Sebastian |
Datum/Zeit: | 10.09.2012 16:34:38 |
#define AnzahlZahlen 31
Dim ZahlenInDerUrne(1 To AnzahlZahlen) As Integer
' "Urne" mit Zahlen fuellen...
For i As Integer = 1 To AnzahlZahlen
ZahlenInDerUrne(i) = i * 10
Next i
' Array fuer Markierungen, welche Indizes schon gezogen waren
Dim SchonGezogen(1 To AnzahlZahlen) As UByte
' Array fuer die gezogenen Zahlen in zufaelliger Reihenfolge
Dim Ziehung(1 To AnzahlZahlen) As Integer
' Pseudozufallszahlengenerator initialisieren
Randomize Timer
Dim indexGezogen As Integer
' Ziehung!
For z As Integer = 1 To AnzahlZahlen
' Jetzt so lange ziehen, bis eine Zahl gezogen wird,
' die noch nicht als "schon gezogen" markiert ist:
Do
indexGezogen = INT(RND*AnzahlZahlen)+1
Loop Until SchonGezogen(indexGezogen) = 0
' Bisher noch nicht gezogene Zahl gefunden.
' Diese *jetzt* als gezogen markieren:
SchonGezogen(indexGezogen) = 1
' Gezogene Zahl ins Ergebnis-Array uebertragen:
Ziehung(z) = ZahlenInDerUrne(indexGezogen)
Next z
Print "Hier das Ziehungsergebnis ohne Zuruecklegen:"
' Ausgabe des Ergebnis-Arrays
For i As Integer = LBound(Ziehung) To UBound(Ziehung)
Print Ziehung(i);
'Je nachdem, ob es die letzte Zahl ist oder nicht, auch noch
'ein Komma dahinter ausgeben.
If (i < UBound(Ziehung)) Then
Print ", ";
Else
Print ""
End If
Next i
Sleep