AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Random: Delphi vs. Lazarus?

Ein Thema von AlexII · begonnen am 30. Jan 2014 · letzter Beitrag vom 7. Feb 2014
Antwort Antwort
Seite 1 von 2  1 2      
Gutelo

Registriert seit: 29. Sep 2013
152 Beiträge
 
#1

AW: Random: Delphi vs. Lazarus?

  Alt 31. Jan 2014, 00:05
Dass das erste if keinen Sinn macht gebe ich dir Recht. Ist ein Relikt einer vorherigen Implementation in der das 1+ nicht im Trunc war. Aendert aber nichts an der Funktionalitaet.

Bezueglich des zweiten ifs: Auch dieser Einwand ist richtig. Allerdings ist der Einfluss sehr gering und die resultierenden statitischen Verteilungen sind vielfach besser als bei Random. Wenn jemand eine Idee hat wie man die Randbedingung ohne Grossen Aufwand besser loest waere ich dankbar.

Randomize hatte ich nur einmal vorher aufgerufen. Sehe aber auch keinen Grund warum man es nicht oefter aufrufen duerfte. Nach meinem Verstaendnis setzt Randomize nur einen beliebigen Startpunkt fest von dem aus die weiteren Werte mit Random bestimmt werden. Da der Startpunkt zufaellig ist sollte man Randomize doch auch beliebig aufrufen duerfen, oder nicht?
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Random: Delphi vs. Lazarus?

  Alt 31. Jan 2014, 00:19
Der Startpunkt ist nicht zufällig – wie auch. Man braucht ja gerade den Zufallsgenerator, um „zufällige“ Werte zu erzeugen. Wie soll man dann einen echt zufälligen Startpunkt für den Zufallsgenerator finden? Ein Computer ist nun mal deterministisch.

Randomize setzt den Startpunkt auf die aktuelle Uptime. Wenn man das in kurzen Abständen hintereinander ausführt, kommen da immer der gleiche oder sehr ähnliche Seeds bei heraus, und dadurch ergeben sich auch immer gleiche oder ähnliche Zahlenfolgen.
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Random: Delphi vs. Lazarus?

  Alt 31. Jan 2014, 10:04
Wenn man das in kurzen Abständen hintereinander ausführt, kommen da immer der gleiche oder sehr ähnliche Seeds bei heraus, und dadurch ergeben sich auch immer gleiche oder ähnliche Zahlenfolgen.
Ähnliche Seeds ergeben nicht ähnliche Zufallszahlen. Ausserdem kann man den Delphi RNG auch selbst via RandSeed füttern.
Gruß
Cookie
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Random: Delphi vs. Lazarus?

  Alt 31. Jan 2014, 10:08
Wenn man das in kurzen Abständen hintereinander ausführt, kommen da immer der gleiche oder sehr ähnliche Seeds bei heraus, und dadurch ergeben sich auch immer gleiche oder ähnliche Zahlenfolgen.
Ähnliche Seeds ergeben nicht ähnliche Zufallszahlen.
Ich hab nicht im Kopf wie der RNG von Delphi genau funktioniert, ich hab nur irgendwann mal die Erfahrung gemacht. Vielleicht lief der Code auch so schnell, dass die Seeds tatsächlich häufig komplett gleich waren.
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Random: Delphi vs. Lazarus?

  Alt 31. Jan 2014, 10:30
Wenn man das in kurzen Abständen hintereinander ausführt, kommen da immer der gleiche oder sehr ähnliche Seeds bei heraus, und dadurch ergeben sich auch immer gleiche oder ähnliche Zahlenfolgen.
Ähnliche Seeds ergeben nicht ähnliche Zufallszahlen.
Ich hab nicht im Kopf wie der RNG von Delphi genau funktioniert, ich hab nur irgendwann mal die Erfahrung gemacht. Vielleicht lief der Code auch so schnell, dass die Seeds tatsächlich häufig komplett gleich waren.
Darum sollte man ja Randomize nicht zu schnell zu oft aufrufen.
Gruß
Cookie
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Random: Delphi vs. Lazarus?

  Alt 31. Jan 2014, 11:07
Darum sollte man ja Randomize nicht zu schnell zu oft aufrufen.
Das habe ich doch gerade gesagt. Eigentlich sollte man es nur einmal aufrufen.
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Random: Delphi vs. Lazarus?

  Alt 31. Jan 2014, 14:50
Eigentlich sollte man es nur einmal aufrufen.
Nein, das ist eigentlich egal, solang du nicht den gleichen Seed hast.

Also Randomize NICHT zu oft aufrufen, dann kann so etwas passieren.
Gruß
Cookie
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#8

AW: Random: Delphi vs. Lazarus?

  Alt 31. Jan 2014, 10:33
Noch mal zum Thema Geschwindigkeit vs. Sicherheit bzw Periodenlänge: So einfach wie hier zusammengefaßt
Delphi - linearer Kongruenzgeneratoren - 2^32 = schnell, aber nicht sehr sicher.
Lazarus - Mersenne-Twister Pseudozufallszahlengenerator - (2^19937)−1 = langsam, aber dafür viel sicherer?
ist die Lage nicht. Wenn man sich meine Tabelle http://www.wolfgang-ehrhardt.de/misc_de.html#prng ansieht, erkennt man das Delphi random nur ca 10% schneller als der Mersenne Twister ist, aber 30% langsamer als X0R4096 und immer noch 15% langsamer als mein 'Standard'-Generator Taus88. Selbst der kryptografische ISAAC-Generator ist nur ca 18% langsamer.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Random: Delphi vs. Lazarus?

  Alt 31. Jan 2014, 10:58
Aber wie sieht es mit der Sicherheit der Passwörter aus? Die von Delphi sind schneller zu knacken wie ich verstehe.
Gib's eigentlich einen Cross-Platform-Zufallsgenerator, der NSA oder "Wasser und Bombenfest" ist?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!

Geändert von AlexII (31. Jan 2014 um 11:08 Uhr)
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#10

AW: Random: Delphi vs. Lazarus?

  Alt 31. Jan 2014, 11:15
Aber wie sieht es mit der Sicherheit der Passwörter aus? Die von Delphi sind schneller zu knacken wie ich verstehen.
Gib's eigentlich einen Cross-Platform-Zufallsgenerator, der NSA oder "Wasser und Bombenfest" ist?
Passwörter sollte man nicht mit dem Delphi-Generator erzeugen, jedenfalls nicht algorithmisch nur mit einem Programm: Wenn der Sourcecode/PW-Algorithmus nicht gekannt ist, dann kann man nicht sicher sein, ob irgendetwas Unerwünschtes drin ist; wenn er bekannt ist, kann man ihn in (Milli-)Sekunden knacken, man probiert halt alle 2^32 Seeds aus (siehe zB hier für das super-geheime Passwort ylCvlgU5$wGWRmCcIyg ... LbhsjCbg).

Es gibt wohl sichere Generatoren (zB Fortuna), aber das Hauptproblem ist das Seeding bzw. Reseeding, speziell auf embedded Systemen; d.h. der eigentliche Engpaß ist ein gute (externe) Entropie-Quelle.

Geändert von gammatester (31. Jan 2014 um 11:40 Uhr) Grund: Beispiel-Links
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:01 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