Code: Alles auswählen
Procedure.s zufallsreihe(anzahl)
Protected reihenfolge.s = ""
Protected Dim mischen_array(anzahl-1)
For i = 0 To anzahl-1
mischen_array(i)=1
Next
For i = 1 To anzahl
zufall.l = Random(anzahl-i) + 1
a.l=0
While zufall > 0
If mischen_array(a)=1
zufall - 1
EndIf
If zufall > 0
a + 1
EndIf
Wend
mischen_array(a)=0
reihenfolge = reihenfolge+Str(a+1)+";"
Next
ProcedureReturn reihenfolge
EndProcedure
3;1;2;5;4; oder 2;5;3;4;1;
Diese wird als String zurückgegeben und kann mittels Stringfield bequem ausgelesen werden.
Geschwindigkeit ist denk ich mal akzeptabel:
100 x eine 10er Reihe: 0ms
100 x eine 100er Reihe: 16ms
100 x eine 1000er Reihe: 875ms
Wie ich das Forum kenne, wird sehr schnell eine effektivere Methode gepostet, aber immer her damit, haben alle was von
