![]() |
Random - immer die gleiche Reihenfolge in der Zahlen kommen?
Delphi-Quellcode:
Wenn ich jetzt die Zahl abfrage, erhalte ich immer, wenn ich das Programm neu starte, Zahl1 = 1 und Zahl2 = 4. Warum passiert sowas?
Zahl1 := random(99) + 1;
Zahl2 := random(99) + 1; //edit: Beim zweiten Mal krieg ich immer 86 und 21. Weiter hab ich noch nicht geprüft :-? |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Kuck mal hier: [dp]Wie zufällig ist Random[/dp] Dort sind die Sachverhalte des Delphi-RNGs ein wenig genauer beschrieben ;)
Edit: Noch besser ![]() |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Bevor du random aufrufst , musst du Randomize aufrufen.
|
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Hi,
vielleicht Randomize; vergessen? ;) |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
@Dax: Danke schonmal :thumb:
@Spider und sniper_w: :wall: daran hats wohl gelegen, jetzt klappts :mrgreen: |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Hi,
ich würde auch schwer dazu tendieren, dass du randomize im OnCreate vergessen hast. :wink: Mit Randomize wird ein Zufallsgenerator gestartet. Nach einer Formel von Delphi wird ein zufälliger Startwert ermittelt, der Datum und Uhrzeit zur Hilfe nimmt. Da Uhrzeit und Datum meistens verschieden sind, ist alles Zufall. MfG Marc |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Zitat:
Auf jeden Fall funktioniert es jetzt super :thumb: |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Hi :)
Bin mir nicht sicher ob du es weisst, aber man sollte Randomize übrigens nur 1x aufrufen (z.B. im OnCreate) *was gelernt hat vor einiger zeit* :stupid: |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Zitat:
:mrgreen: |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Und für alle, die jetzt denken dieser Verhalten ohne Randomize, also das immer wieder die "selben" Zahlenfolgen entstehen, jetzt z.B. für 'ne Verschlüsselung, oder ähnliches zu verwenden ... davon ist abzuraten, da sich diese Zahlenfolgen von Compilerversion zu Compilerversion ändern können!
[das sollte wohl sicherheitshalber nochmal erwähnt werden] |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Und eine Compiler unabhängige version (aus C hilfe genommen):
Zitat:
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; |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Ich habe hioer noch eine ähnliche Variante:
Delphi-Quellcode:
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.
var x: Cardinal;
function MyRandom: Cardinal; begin x:= (45*x+853) mod 1024; Result:= x; end; procedure RandomInit(start: Cardinal); begin x:= start; end; MfG Binärbaum |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Wenn wir mal bei Aufklärung sind:
Zitat:
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 |
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? |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Zitat:
Zitat:
Zitat:
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 |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Zitat:
MfG Binärbaum |
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 |
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] |
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 |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Zitat:
@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. |
Re: Random - immer die gleiche Reihenfolge in der Zahlen kom
Hai ihr alle :-)
Jetzt muss hier wohl doch einmal ein Moderator eingreiffen. Es ist natürlich richtig das die Frage schon recht früh geklärt wurde, aber ich denke es ist durchaus legitim auf die Schwachstellen von bestimmten Funktion hinzuweisen auch wenn dies in diesem Fall nicht 100% etwas mit der Frage zu tun hat. Auf keinen Fall sollte so etwas der Anlass sein sich hier zu streiten oder, noch schlimmer, sich zu überlegen das Forum zu verlassen. Ein Vorschlag von mir wäre:
Na, ist das etwas mit dem ihr leben könnt? :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 Uhr. |
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 by Thomas Breitkreuz