Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
|
Re: Zufallsgenerator mit vorgegebener Häufigkeit?
7. Aug 2007, 21:58
Es gibt jetzt noch einige Optimeirungen
1.) man wird erstmal die Prozente einkürzen, so daß die kleinste "Prozentangabe" 1 wird und die restlichen Prozente entsprechend gekürzt werden. Dazu benötigt man den GCD -> ggT.
2.) kann man nun ein array[0..MaxProzent-1] of Integer anlegen und dort Anteilmäßig die gesuchten Zahlen eintragen
3.) sähe der Aufruf dann so aus Result := BereichArray[Random(maxProzent)]
Im Obigen Beispiel hatten wir
1 = 10%
2 = 20%
3 = 40%
4 = 10%
5 = 20%
Das lässt sich einfach einkürzen in
1 = 1
2 = 2
3 = 4
4 = 1
5 = 2
MaxProzent wäre also 10, unser BereichArray sähe so aus
BereichArray[0..9] of Integer = (1, 2, 2, 3, 3, 3, 3, 4, 5, 5);
Gruß Hagen
|