Hast Recht - ich hatte bei Float bereits Frac() unterstellt und - na ja - so geht es dann besser:
Delphi-Quellcode:
function Odds(x: double): boolean;
begin
Result := Random > (1 / x);
end;
marabu
Dritter Anlauf: Langsam werde ich munter. Deine Anforderung widerspricht sich irgendwie.
Zitat von
yankee:
Jetzt will ich einen Boolean-Zufall generieren und zwar so, dass je höher meine Zahl ist, je höher ist die Wahrscheinlichkeit true raus zu bekommen.
Diese Anforderung erfüllt der obige Code.
Eine Wahrscheinlichkeit 1:x erhältst du aber so:
Delphi-Quellcode:
function Odds(x: double): boolean;
begin
Result := (Random * (1 + x)) < 1;
end;
marabu