Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Random - immer die gleiche Reihenfolge in der Zahlen kommen? (https://www.delphipraxis.net/41074-random-immer-die-gleiche-reihenfolge-der-zahlen-kommen.html)

sniper_w 25. Feb 2005 20:54

Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
 
Und eine Compiler unabhängige version (aus C hilfe genommen):

Zitat:

static unsigned long int next = 1;
int myrand(void) /* RAND_MAX assumed to be 32767 */
{
next = next * 1103515245 + 12345;
return((unsigned int)(next/65536) % 32768);
}

void mysrand(unsigned int seed)
{
next = seed;
}
In Delphi:
Delphi-Quellcode:
var next:cardinal = 1;

function myrand():cardinal   /* RAND_MAX assumed to be 32767 */
begin
    next := next * 1103515245 + 12345;
    Result := cardinal( (next div 65536) mod 32768);
end;

procedure mysrand(seed : cardinal)
begin
    next := seed;
end;

Binärbaum 26. Feb 2005 00:12

Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
 
Ich habe hioer noch eine ähnliche Variante:
Delphi-Quellcode:
var x: Cardinal;

function MyRandom: Cardinal;
begin
 x:= (45*x+853) mod 1024;
 Result:= x;
end;

procedure RandomInit(start: Cardinal);
begin
 x:= start;
end;
Diese Funktion erzeugt zwar nur Zufallszahlen von 0 bis 1023, und nach 1024 Aufrufen beginnt die Folge wieder von vorn. Aber dafür sind die Zahlen gleichverteilt, es kommt in 1024 Aufrufen dieser Funktion jede der Zahlen von 0..1023 einmal als Ergebnis. Ebenso erhält man damit stets die gleiche Zufallszahlenfolge, wenn man den gleichen Startwert angibt (ist ja logisch). Damit kann man die Zahlenfolge auch für eine Verschlüsselung nehmen.

MfG
Binärbaum

negaH 26. Feb 2005 01:06

Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
 
Wenn wir mal bei Aufklärung sind:

Zitat:

Ebenso erhält man damit stets die gleiche Zufallszahlenfolge, wenn man den gleichen Startwert angibt (ist ja logisch). Damit kann man die Zahlenfolge auch für eine Verschlüsselung nehmen.
Du hast bei jedem beliebigen Startwert immer nur ein und die selbe Zufallsfolge. Jeder Psudozufallsgenerator produziert immer nur eine Zufallsfolge und nicht mehrere unterschiedliche. Der Startwert legt nur den Start ab dem du die Zufallsfolge erzeugst fest. Wird bei deinem PRNG also mit einem beliebigen Startwert 1024 Werte erzeugt dann kommst du automatisch wieder zum Startwert und beginnst die Folge von neuem, ergo: bei einem belibigen Startwert handelt es sich immer und die selbe Zufallsfolge, der RNG erzeugt immer nur eine.

Demozufolge ist die maximale Länge der eindeutigen Zufallsfolge ein wichtiges Kriterium. Ist sie zu kurz so kann man alle Zustände der Folge exakt durchrechnen. Ist sie aber lang genug, zb. 2^128, dann wird es schwierig in einem Menschenleben die komplette Folge zu berechnen. Fazit: nimmt man solch große RNGs und startet sie mit einem beliebigen zufälligen Startwert dann ist die Wahscheinlichkeit verschwindend gering das man die gleiche Folge von Zahlen berechnet. Man könte es dann so betrachten als wären es immer unterschiedliche Zufallsfolgen, obwohl es real immer die selbe Zufallsfolge ist, nur an anderer Position der Berechnung.

Wie oben angedeutet kann man auch aus diesem Grund den Delphi Random nicht für die Kryptographie benutzen, er ist mit 2^31 viel zu kurz und zudem noch vorherberechenbar.

Gruß Hagen

4toms 26. Feb 2005 08:34

Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
 
Blöde/möglicherweise sehr dumme Frage:

Wenn ich mit Randomize eine Zufallszahl ermittle, die wiederum als Basis für das nächste Randomize (+-LongInt) benutze und das Ergebnis durch ein randomized Ergebnis meiner Schuhgrüße (statt meiner Shuhgröße) ermittelt:

Stimmt es, das es sogar die echten Windows-Profis nur mit > 200 Jahren Rechnerlaufzeit rauskriegen?

Es sei denn, die echten Windows-Profis haben Zugriff auf die Codes der amerikanischen Geheimdienste?

Wer oder was hat Zugriff auf welche Daten nochmal?

negaH 26. Feb 2005 10:24

Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
 
Zitat:

Stimmt es, das es sogar die echten Windows-Profis nur mit > 200 Jahren Rechnerlaufzeit rauskriegen?
In deinem Falle mit einem +-LongInt und Randomize, stimmt es nicht. Das kann jeder auf einem normalen PC innerhalb erträglicher Zeit rauskriegen, zb. in einem Jahr an Berechnungen mit einem normalen PC.

Zitat:

Es sei denn, die echten Windows-Profis haben Zugriff auf die Codes der amerikanischen Geheimdienste?
Was hat das mit den Geheimdiensten zu tun. Random() aus Delphi ist ein stinkbormaler LCG=Linear Congruence Generator, kurz ein normaler modularer Ring. Die dazu nötige Mathematik ist seit 200 Jahren weitestgehend erforscht. Wenn überhaupt taugen die LCG's für einfachste statistische Aufgaben, für mehr nicht.

Zitat:

Wer oder was hat Zugriff auf welche Daten nochmal?
Wenn die Experten deine Gewohnheiten unter die Lupe nehmen, deine Umgebung über dich befragen, deinen Müll und Wohnung durchwühlen, so können die ne ganze Menge über dich und dein Denken herausbekommen. So besonders untercheidet sich kein Mensch von dem anderen.

Schuhgrößen ? Wieviele verschiedene Schuhgrößen gibt es bei männlichen Personen deines Alters ? Da du ja hier im Forum schon angedeutet hast das du deine Schuhgröße benutzen möchtest, bleiben ja nicht viele Kombinationsmöglichkeiten übrig, oder !

Gruß Hagen

Binärbaum 26. Feb 2005 12:03

Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
 
Zitat:

Zitat von negaH
Der Startwert legt nur den Start ab dem du die Zufallsfolge erzeugst fest. Wird bei deinem PRNG also mit einem beliebigen Startwert 1024 Werte erzeugt dann kommst du automatisch wieder zum Startwert und beginnst die Folge von neuem, ergo: bei einem belibigen Startwert handelt es sich immer und die selbe Zufallsfolge, der RNG erzeugt immer nur eine.

Habe ich etwa was anderes behauptet? Ich habe doch geschrieben, dass die Zufallszahlen nach 1024 Werten wieder von vorne anfangen. :gruebel:

MfG
Binärbaum

negaH 26. Feb 2005 12:08

Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
 
Nöö haste nicht, aber ich sehe oft Beiträge bei denen das anders rüberkommt, und ich wollte es endlich mal loswerden :)

Gruß Hagen

Chegga 26. Feb 2005 12:12

Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
 
Hi @ all,

imho ist malos Frage vollständig geklärt. :wink:
Also bitte kein OT mehr...

MfG Marc

P.S.: @ negaH + Binärbaum: Klärt eure "Probleme" per PN. :zwinker:

[Edit] Auf die Anspielung von negaH werde ich mich öffentlich nicht äußern. [/Edit]

negaH 26. Feb 2005 13:38

Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
 
Entschuldige Chegga das ich deine Arbeit als Foren-Administrator der DP nicht genügend gewürdigt habe. Ich glaube ich habe in der DP noch einige andere Threads gesehen die OT geworden sind und eine Ermahnung benötigen. Wenn du willst schicke ich sie dir als PN, nenne dir Namen, Addressen und Gewohnheiten der bösen Buben.

Sorry, aber das ist echt ein Grund meine Arbeit hier im Forum einzustellen.

Gruß Hagen

malo 26. Feb 2005 13:53

Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
 
Zitat:

Zitat von negaH
Entschuldige Chegga das ich deine Arbeit als Foren-Administrator der DP nicht genügend gewürdigt habe. Ich glaube ich habe in der DP noch einige andere Threads gesehen die OT geworden sind und eine Ermahnung benötigen. Wenn du willst schicke ich sie dir als PN, nenne dir Namen, Addressen und Gewohnheiten der bösen Buben.

Sorry, aber das ist echt ein Grund meine Arbeit hier im Forum einzustellen.

Gruß Hagen

Er wollte doch nur darauf hinweisen, dass eure "Streitereien" nicht in den Thread gehören. Meine Frage ist bereits beim 3. Post geklärt gewesen. Klärt das doch mal ernsthaft bitte per PN.

@negaH: Auf dieses Niveau muss man sich ja wohl nicht herablassen, oder? :roll:

@Mods: Bevor noch weitere Diskusionen hier beginnen, schließt den Thread bitte mal. Alles weitere kann ja per PN geklärt werden. Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz