Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Wie funktioniert ein einfacher Pseudo-Zufallszahlengenerator?

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
fk
Gast





BeitragVerfasst am: 15. März 2002 21:15   Titel: Wie funktioniert ein einfacher Pseudo-Zufallszahlengenerator?

Wie funktioniert ein einfacher Pseudo-Zufallszahlengenerator (z.B. in Pascal)? Ich hätte das gerne an einem möglichst einfachen Beispiel erklärt gehabt, sodass ich es mit meinen bescheidenen Mathematik-Kenntnissen nachvollziehen kann. So viel ich weiß, wird der seed-Wert mit der Systemzeit initialisiert. Danke für jegliche Hilfe.
 

Räuber Hotzenplotz
Gast





BeitragVerfasst am: 16. März 2002 12:02   Titel: Re: Wie funktioniert ein einfacher Pseudo-Zufallszahlengenerator?

Hallo,

wie einfach darf er denn sein?

Ich hatte schon Anwendungsfälle wo
code:

(* Platte "C nach Pascal"-Portierung *)
VAR zz : INTEGER; (* Der "Zufallswert" - in Pascal gibts nicht sowas wie "static"? *)
FUNCTION rnd(): INTEGER;
BEGIN zz:=zz+1;IF zz>9 THEN zz:=0;
rnd:=zz END;


gereicht hat.(Sprich 0123456789012345678901234567...)

Das ISO-C rand() (wohl der billigste Zufallsgenerator den es gibt )funktioniert afaik nach

r:=(a*r + c)%m

Auf meinem System sind die Werte für a:=1103515245, für c:=12345 und für m:=(2^31).

Das erste r wird dabei von srand gesetzt. Alle anderen Werte sind also davon Abhängig.

Gruss
 

vyper



Anmeldungsdatum: 27.02.2002
Beiträge: 19

BeitragVerfasst am: 17. März 2002 0:55   Titel: Re: Wie funktioniert ein einfacher Pseudo-Zufallszahlengenerator?

<Fachsimpelei>Computer können keine Zufallszahlen erzeugen, da sie deterministische Geräte sind.</Fachsimpelei>

Die genannte Formel

rn = ( rn-1 * a + c ) % m

ist - obwohl sehr einfach - für fast alle Anwendungen ausreichend, allerdings nur, wenn die multiplikative Konstante a gut gewählt wird. Es gibt da recht komplizierte mathematische Untersuchungen, wie a aufgebaut sein muss, damit die folgenden Werte möglichst "zufällig" (richtiger wäre "beliebig") sind. Da müsste man mal im Netz recherchieren, im Kopf habe ich das leider nicht mehr. (Ich glaube mich zu erinnern, dass man gute Werte bekommt, wenn man Zahlen wählt, die auf "421" enden.)

Man muss natürlich mit einem möglichst zufälligen Startwert (r0) beginnen, wie schon erwähnt kann das bspw. die Systemzeit sein.
 
Benutzer-Profile anzeigen Private Nachricht senden

Räuber Hotzenplotz
Gast





BeitragVerfasst am: 17. März 2002 10:05   Titel: Re: Wie funktioniert ein einfacher Pseudo-Zufallszahlengenerator?

> <Fachsimpelei>Computer können keine Zufallszahlen erzeugen, da sie deterministische Geräte sind.</Fachsimpelei>

Ich denke, dass es sinnvoll ist, Zufälligkeit als die Grösse der kleinsten Turingmaschine die diese Folge erzeugen kann, zu definieren.

Das musste mal gesagt werden...
 

marc



Anmeldungsdatum: 20.04.2001
Beiträge: 444
Wohnort: Arnsberg

BeitragVerfasst am: 17. März 2002 12:11   Titel: Re: Wie funktioniert ein einfacher Pseudo-Zufallszahlengenerator?

Moin
Wer googlet, der findet :
http://home.t-online.de/home/poisoner/krypto/prngs.htm

Gruß
Marc
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy