Thema: Delphi Zufals-Boolean erzeugen

Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#35

Re: Zufals-Boolean erzeugen

  Alt 27. Sep 2005, 07:04
Es besteht aber die Möglichkeit eine solche "Zufallssequenz" ganz einfach zu erzeugen.

Delphi-Quellcode:
var
  LastValue: Boolean;
  LastValid: Boolean := False;

function RandomBoolean: Boolean;
begin
  if not LastValid then
    LastValue := Odd(Ramdom(2));
  Result := LastValue;
  LastValue := not LastValue;
  LastValid := not LastValid;
end;
Diese Funktion erzeugt Tuples aus TRUE/FALSE bzw FALSE/TRUE Werten zufällig. Ruft man sie also mit geradzahliger Anzahl auf so ist garantiert das 50% TRUE/FALSE sind. Der maximale Abstand zwischen zwei TRUE bzw FALSE Werten beträgt 2.

Aus dieser kleinen Funkton lässt sich sehr einfach mathematisch ableiten das wenn man längere uniforme Abstände erreichen möchte sich die WorstCase-Gleichverteilung immer weiter von 50% entfernen muß. Und bei "echt" zufälligen Sequenzen die mathematisch mögliche WorstCase-Gleichverteilung exakt einer unendlich langen Sequenz sein muß. Heist auch eine unendlich lange Sequenz aus lauter TRUE oder FALSE Werten ist eine wahrscheinlich mögliche zufällige Sequenz.

Gruß Hagen
  Mit Zitat antworten Zitat