Da der Pseudo-Zufalls-Generator (bzw. dessen Algorithmus) von Visual Basic 6 und VBA sehr veraltet ist, hab ich den Marsenne Twister für VB rausgesucht.
Hat etwa ne Stunden gedauert
Marsenne Twister für VB
Der Code funktioniert laut Porter problemlos in VB6 und VBA.
Um den Zufallsgenerator zu nutzen, kopiert man einfach den gesamten Code aus dem Link oben in ein eigenes Modul.
Bevor man die darin enthaltenen Funktionen nutzt, sollte man noch die Sub init_genrand(seed) mit einem variablen Wert, z.B. Systemzeit oder GetTickCount, aufrufen.
Beispielcode:
Hoffe ich bin nicht der Einzige mit Interesse dran.
so long..
Andy
Keywords: Visual Basic, VB6, VB, VBA, Marsenne Twister, Zufall, Zufallszahlen, Random, Better Random Numbers
Hat etwa ne Stunden gedauert
Marsenne Twister für VB
Der Code funktioniert laut Porter problemlos in VB6 und VBA.
Um den Zufallsgenerator zu nutzen, kopiert man einfach den gesamten Code aus dem Link oben in ein eigenes Modul.
Bevor man die darin enthaltenen Funktionen nutzt, sollte man noch die Sub init_genrand(seed) mit einem variablen Wert, z.B. Systemzeit oder GetTickCount, aufrufen.
Beispielcode:
Visual Basic-Quellcode
- Private Sub Form_Load()
- 'In Form_Load oder der Main-Sub aufrufen!
- init_genrand(int(timer*100))
- End Sub
- Private Sub Command1_Click()
- 'die erste Methode sollte nur für kleinere Zahlen-Differenzen verwendet werden.
- Msgbox "Eine Zufallszahl zwischen 1 und 100: " & _
- (genrand_int31 mod 100) + 1
- 'die zweite Methode funktioniert wie Rnd
- Msgbox "Eine andere Zufallszahl zwischen 1 und 100: " & _
- int(genrand_real2 * 100) + 1
- End Sub
Hoffe ich bin nicht der Einzige mit Interesse dran.
so long..
Andy
Keywords: Visual Basic, VB6, VB, VBA, Marsenne Twister, Zufall, Zufallszahlen, Random, Better Random Numbers
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Mad Andy“ ()