Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zufallszahlen -> Generator gesucht (https://www.delphipraxis.net/42619-zufallszahlen-generator-gesucht.html)

Backslash 21. Mär 2005 18:01


Zufallszahlen -> Generator gesucht
 
Hallo Leute,

Die letzten Jahre habe ich mich mit der Kompression von verlustfreien Daten beschäftigt und bin dort auf eine interessante Sache gestoßen. Das Problem ist, dass ich bisher keine Datei oder zufällig generierte Datei gefunden habe, die 100% zufällig oder wenigstens annähernd zufällig war, um meine Entwicklungen zu testen.

Ich habe bisher Zufallsgeneratoren von random.org ausprobiert. Die sollen nach eigenen Angaben angeblich die besten sein. Das kann ich nicht bestätigen, da sich jede, aber auch jede generierte Datei extrem vom mathematisch definitorischen Zufall abwich. Ich hab mich bereits mit Doktoren der Informatik in Verbindung gesetzt, um möglicherweise bessere Zufallsgeneratoren zu finden. Bisher ohne Erfolg.

Den Zufallsgenerator von Delphi hab ich auch schon gestestet, aber der liefert noch schlechtere Ergebnisse wie random.org. Ich hab bisher über 300 Dateien > 1 MB getestet, darunter bereits komprimierte. Alle wichen extrem ab. Weiß jemand von euch vielleicht, wo ich mir einen Zufallsgenerator oder zur Not auch generierte Streams runterladen kann, die etwa der maximal möglichen Zufälligkeit entsprechen? Ich brauche wirklich gute Algorithmen, um zufällige Datenmengen zu erstellen.

Was mir fehlen würde wäre vielleicht ein Programm wo ich die Länge eingeben könnte, und welches mir komplett zufällige Daten generiert.

Bin für jede Hilfe dankbar. :?

Gruß

Backslash

PS: Ich hab im Internet so ein Stichwort wie Kolgomorov Komplexität von Datenströmen entdeckt. Ich glaub, es wäre gar nicht schlecht wenn ich eineni Zufallsgenerator finden würde, der das berücksichtigt.

malo 21. Mär 2005 18:05

Re: Zufallszahlen -> Generator gesucht
 
Wegen delphi: Schreib mal ins OnCreate folgendes:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  randomize;
end;
:zwinker:

Backslash 21. Mär 2005 18:14

Re: Zufallszahlen -> Generator gesucht
 
was soll das bringen? :wall: *selfironicgrins* :zwinker:

Ich habs doch wie oben gesagt bereits mit dem Zufallsgenerator versucht. Ich hab sogar später, weil die Zahlen soweit vom mathematisch definitorischen Zufall abwichen, ein Randomize vor dem Generieren jedes einzelnen Bytes aufgerufen. Das bring auch nix. In der Delphi-Hilfe steht ja auch drinnen, dass man den Zufallsgenerator nicht für solche Experimente gebrauchen sollte. Es sei, denn da hat sich was seid Delphi 5 getan. :gruebel:

Dax 21. Mär 2005 18:27

Re: Zufallszahlen -> Generator gesucht
 
Schon mal den Quadratischen Restegenerator probiert?

In diesem Beitrag wird beschrieben, wie's funktioniert.

Backslash 21. Mär 2005 18:31

Re: Zufallszahlen -> Generator gesucht
 
Danke für die Antwort. Ich werds mir sofort anschauen. :)

mr47 21. Mär 2005 19:02

Re: Zufallszahlen -> Generator gesucht
 
Du kannst auch "selber" Zufallszahlen machen. Z.B. eine Form (in DElphi) und dann bei OnMouseMove die x und y-Werte der Maus irgendwie verarbeiten. Und dann beliebig rumfahren und ergebnisse in ne Datei speichern oder weiterverwenden.

:arrow: Schlagt mich wenn das nicht so toll ist :mrgreen:

mfg

Catbytes 21. Mär 2005 19:54

Re: Zufallszahlen -> Generator gesucht
 
Erkläre uns erstmal, was Du unter Zufall verstehst. Vielleicht hast Du da eine andere Definition als wir.

Für mich ist Zufall, wenn ich Würfel und es kommt irgendeine Zahl. Ist das auch für Dich Zufall?

Airblader 21. Mär 2005 20:29

Re: Zufallszahlen -> Generator gesucht
 
...und PCs können sowieso keinen "Zufall" erstellen

Jarmen_Kell 21. Mär 2005 20:33

Re: Zufallszahlen -> Generator gesucht
 
genau, es gibt keinen Zufall

Dax 21. Mär 2005 20:34

Re: Zufallszahlen -> Generator gesucht
 
Ich möchte mal Hagen aus dem Gedächtnis nacherzählen ;)

Hast Recht, kann man nicht. Aber wenn man einen genügen komplexen Algorithmus zur erzeugung dieser Pseudo-Zufallszahlen hat, kann man ohne Kenntnis des Anfangszustandes des Algorithmus nur sagen: mit 50% Wahrscheinlichkeit ist die nächste Zahl dieser Folge (Un)gerade.

Falls ich was verhauen hab'.. ist lange her, dass ich Hagens Beitrag zu dem Thema genommen hab.

Airblader 21. Mär 2005 20:39

Re: Zufallszahlen -> Generator gesucht
 
Man kann etwas durch noch so viele Algorithmen hauen, es kann und wird keinen Zufall geben. ;)

air

Dax 21. Mär 2005 20:44

Re: Zufallszahlen -> Generator gesucht
 
Das ist ja klar, weil du als Insider den Weg kennst. Aber alle Aussenstehenden werden in diesen Zahlen nie eine Regelmäßigkeit finden -> für sie ist das Zufall.

mr47 21. Mär 2005 21:11

Re: Zufallszahlen -> Generator gesucht
 
Meint ihr ich? Wenn man die Maus bewegt ist das ja nicht Computergeneriert. Es ist genauso wahrscheinlich, dass eine andere Zahl rauskommt, wie bei einem Würfel. :roll: Wers nicht glaubt, soll mal zwei mal genau die gleichen 1000 Zahlen generiern, mit dem OnMOuseMove!

mfg

Dax 21. Mär 2005 21:17

Re: Zufallszahlen -> Generator gesucht
 
Die Wahrscheinlichkeit, 2 mal die gleiche Zahlenfolge der Länge 1000 ist auch bei menschlichen Input durchaus statistisch Wahrscheinlich. Allerdings wird es sehr lange dauern, bis wirklich 2 gleiche Zahlenreihen vorliegen.

Vulkaniermodus mal angeschaltet lass *g*

negaH 21. Mär 2005 21:29

Re: Zufallszahlen -> Generator gesucht
 
Deine Aussage ist sehr interessant. Lade dir aus der CodeLib mal meinen RCx Verschlüsslungscode, der enthält auch einen Pseudozufallsgenerator und teste diesen mal mit deiner Komprimierung.

Normalerweise sollten halbwegs gute Zufallsdaten durch keinen verlustfreien Komprimierungsalgorithmus komprimierbar.

Falls hinreichend große Zufalldatenmengen die mit meinem RCxRandom() erzeugt wurden denoch durch deinen Komprimierungsalgo. komprimiert werden können, und sei es nur 1 Byte nach der Komprimierung weniger, so werde ich dir einige Testdateien hier posten die ich mit meinem PMC -> Polymorph Cipher erzeugt habe. Bisher habe ich keine einzigste Komprimierung gefunden die diese Daten komprimieren konnte.
Falls auch diese durch deinen Algo. komprimiert werden können, dann erzeuge ich dir Testdaten die durch den Quadratischen Restegenerator erzeugt wurden.
Falls auch diese duch deinen Algo. komprimiert werden können dann hast du das mathematisch unmögliche geschafft, verdienst dann wirklich den Nobel Preis und kannst dich den Rest deines Lebens in der jamaikanischen Sonne bräunen.

Falls du in deinem Algo. keinen Fehler hast und dein Algo. all diese Daten (ohne externe Zusatztabellen etc.) komprimieren kann, ziehe ich echt den Hut vor dir.

Es stimmt schon das man jede Datenmenge die durch deterministische Prozesse erzeugt wurde auch komprimieren kann. Das Problem mit hochkomplexen Prozessen ist es aber das es dann keine praktisch existierende Hardware gäbe die in erträglicher Zeit diese komplexen Muster errechnen könnte.
Falls also dein Komprimierungsalgorithmus die Daten solcher hochkomplexer und bis heute nicht geknackter Algorithmen tatsächlich komprimieren kann dann hast du nicht "nur" eine Komprimierng entwickelt sondern viel wichtiger ein Verfahren gefunden das sehr schnell aus beliebigen komplexen Daten Muster erkennen kann. Dies wäre dann mathematisch gesehen die ideale Ausgangsbasis für einen sogenannten Codebreaker.

Gruß Hagen

Prym 21. Mär 2005 21:40

Re: Zufallszahlen -> Generator gesucht
 
ich habe gesehen das du geschrieben hast das du vor jedem befehl randomize gemacht hast

das problemdabei ist das randomize nur einmal, ich sage mal definirt, wird die ganzen randomize die du dort geschrieben hast bringen garnichts es sei denn du setzt vor dem randomize immer
randseed :=0;

woher ich das weiß ich sage mal ich weiß das wenn ich 6 zahlen per random aufrufe und simuliere wie oft geraten wird um die 6 zahlen genau wieder zu bekommen erhät man das ergebnis das 6 zahlen sich erst nach ca 2,15milardenmalen wiederholen deshalb das randseed um random neu zu definieren

man sollte nicht vergessen das random halt auch nur berechnet wird und diese berechnung wird durch diesen randseed wert bestimmt


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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-2025 by Thomas Breitkreuz