Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: aus Randomwertebereich Zahlen ausschließen???

  Alt 20. Nov 2005, 21:25
Entweder du machste es in 'ner Schleife (wie Ulti schon sagte)

Delphi-Quellcode:
Repeat
  i := Random...
Until (i <> 12) and (i <> 50) and (i <> 88);
[add]@igel457: mann kann es sich natürlich auch umständlicher machen ^^[/add]


Oder du berechest das Ergebnis

0..100 = 101 mögliche Werte
12, 50 und 88 ausschließen = nur noch 98 mögliche Werte
also erzeugst du eine zufallszahl 0..97
und skalierst dieses ergebnis in dein tatsächliches Ergebnis hinein.

entweder indem du die ungewünschten Werte nach hinten verschiebst
Code:
1234567890
123 56 8 0479
Delphi-Quellcode:
i := Random(98);
case i of
  12: i := 98;
  50: i := 99;
  88: i := 100;
end;
oder du splittest und verschiebts die Teile
Code:
1234567890
123 45 6 7890
Delphi-Quellcode:
i := Random(99);
if i >= 88-2 then inc(i, 3)
else if i >= 50-1 then inc(i, 2)
else if i >= 12 then inc(i);
[add2]
für meine Beispiele hab ich mal noch 'nen 3. Wert eingeführt, damit es verständlicher wird
$2B or not $2B
  Mit Zitat antworten Zitat