AGB  ·  Datenschutz  ·  Impressum  







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

Besseres Random() - eure Vorschläge

Ein Thema von DieDolly · begonnen am 25. Nov 2019 · letzter Beitrag vom 8. Nov 2020
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.815 Beiträge
 
Delphi 12 Athens
 
#11

AW: Besseres Random() - eure Vorschläge

  Alt 25. Nov 2019, 20:21
1. Ich bekomme bei beiden Links von dir 502 - Bad Gateway.

2. Die DEC hat auch einen Zufallszahlengenerator, aber frage mich
bitte nicht zu dessen Qualität. Du darfst aber gerne so eine
Verteilungskurve anfertigen, würde mich auch interessieren.

https://github.com/winkelsdorf/Delph...tionCompendium

Grüße

TurboMagic
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#12

AW: Besseres Random() - eure Vorschläge

  Alt 25. Nov 2019, 20:27
Vom DEC habe ich noch keine Verteilungsgrafik. Aber die vom Wel1024 ist interessant denn die sieht genau so schlimm aus wie die vom standard Random.
Das liegt meiner Meinung nach an der Initialisierung, die mit Random stattfindet.

Die beste Verteilung mit der besten Performance und dem wenigstens Overhead hat bisher MT19937 (Mersenne Twister, vom 21.6.2000: http://www.rksolution.cz/delphi/dtip0008.txt ) aber damit gibt es Probleme mit 64bit wie man hier sieht
https://www.delphipraxis.net/202655-...ml#post1452105

Geändert von DieDolly (25. Nov 2019 um 20:30 Uhr)
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
563 Beiträge
 
Delphi XE6 Enterprise
 
#13

AW: Besseres Random() - eure Vorschläge

  Alt 26. Nov 2019, 08:13
Kann man Mersenne und WellRng1024 denn vergleichen? Weil WellRng1024 bietet keine Range die man angeben kann.

Beides sehr sehr interessante Methoden. Funktioniert Well1024 auch mit einem Maximum? RandomRange brauche ich eher weniger (wäre trotzdem schön!).
RandomFloat gibt eine Zahl zwischen 0 und 1. Daraus kann man jeden beliebigen Range selbst stricken.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Besseres Random() - eure Vorschläge

  Alt 26. Nov 2019, 08:30
Echte Zufallszahlen in der IT sind doch von Beginn an ein Streitthema ^^

https://www.heise.de/ct/artikel/Linu...te=5#nav__a__0
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.815 Beiträge
 
Delphi 12 Athens
 
#15

AW: Besseres Random() - eure Vorschläge

  Alt 26. Nov 2019, 17:54
Vom DEC habe ich noch keine Verteilungsgrafik.
Du könntest ja mal versuchen eine zu machen, dann würden wir sehen, ob die auch so schlimm aussieht.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#16

AW: Besseres Random() - eure Vorschläge

  Alt 26. Nov 2019, 20:54
1. Ich bekomme bei beiden Links von dir 502 - Bad Gateway.

2. Die DEC hat auch einen Zufallszahlengenerator, aber frage mich
bitte nicht zu dessen Qualität. Du darfst aber gerne so eine
Verteilungskurve anfertigen, würde mich auch interessieren.

https://github.com/winkelsdorf/Delph...tionCompendium

Grüße

TurboMagic
Der DEC 6.0 beta 1 Random ist sehr langsam verglichen zu anderen. 10x langsamer bei mir. Die Resultate. Die Bilder sind in der Originalgröße, damit keine Details verloren gehen!
Info: ich musste die Bilder auf einen Discordserver hochladen, da meine favorisierte Seite img42.com nach dem Upload von 5x4 MB (5.242.880‬ Pixel) offline ging. 4MB pro Bild.

1024x1024 Durchgänge. Test-CPU: Intel Core i7 4790K

Random-DEC 6.0, 11539ms
https://cdn.discordapp.com/attachmen...64/unknown.png

Random-Delphi, 1057ms
https://cdn.discordapp.com/attachmen...68/unknown.png

Random-MT19937, 1063ms
https://cdn.discordapp.com/attachmen...37/unknown.png

Random-1-Zeiler, 1095ms
https://cdn.discordapp.com/attachmen...88/unknown.png

Random-Well1024, 1185ms
https://cdn.discordapp.com/attachmen...84/unknown.png

Random-Poisson
https://cdn.discordapp.com/attachmen...76/unknown.png

Random-DEC und Random-MT19937 schneiden am besten ab.
Well1024 ist durch die anfängliche Initialisierung mit dem Delphi-Random natürlich im Prinzip nur ein aufgemotztes "Standard-Random" mit denselben Auffälligkeiten.

Geändert von DieDolly (26. Nov 2019 um 20:57 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.815 Beiträge
 
Delphi 12 Athens
 
#17

AW: Besseres Random() - eure Vorschläge

  Alt 27. Nov 2019, 21:17
Danke für die Grafiken. Wäre es möglich den Quellcode
des erzeugenden Programms zu bekommen?
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#18

AW: Besseres Random() - eure Vorschläge

  Alt 27. Nov 2019, 21:32
Ist tatsächlich nur das hier
Delphi-Quellcode:
procedure TForm1.RandomClick(Sender: TObject);
var
 x, y: Integer;
 bmp: TBitmap;
begin
 bmp := TBitmap.Create;
 try
  // 4 MB files
  bmp.Width := 1024;
  bmp.Height := 1024;

  for x := 0 to bmp.Width - 1 do
   begin
    for y := 0 to bmp.Height - 1 do
     begin
      bmp.Canvas.Pixels[x, y] := RandomLong; // Aufrufen was man braucht ..
     end;
   end;
 finally
  bmp.SaveToFile('Random-' + TButton(Sender).Caption + '.bmp');
  bmp.Free;
 end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Besseres Random() - eure Vorschläge

  Alt 28. Nov 2019, 06:46
Random-DEC und Random-MT19937 schneiden am besten ab.
Well1024 ist durch die anfängliche Initialisierung mit dem Delphi-Random natürlich im Prinzip nur ein aufgemotztes "Standard-Random" mit denselben Auffälligkeiten.
Wie interpretiert man diese Grafik eigentlich? Ich wollte mir die mal genauer anschauen aber wie es scheint, ist irgendwo in der Kette zwischen deiner Delphi-Routine und dem Discord-Server eine JPEG-Konvertierung dazwischen gerutscht. Verlustbehaftete Komprimierung, damit wertlos geworden. Mir fehlt aber auch die Zeit, die verschiedenen Random-Algos zusammen zu suchen und ein eigenes Programm aufzusetzen.

EDIT: Wäre jedenfalls spannend, dieses Programm mitsamt aller nötigen externen Libs hier zur Verfügung zu stellen und auf verschiedenen Systemen zu testen. Wenn ich mich nicht irre, sind manche Algos von den CPUs und Mainboards abhängig.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (28. Nov 2019 um 06:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Besseres Random() - eure Vorschläge

  Alt 28. Nov 2019, 07:57
Wie interpretiert man diese Grafik eigentlich?
Es geht um die Gleichmäßigkeit des Rauschens. Je weniger Form darin zu erkennen ist, desto zufälliger soll der Algorithmus sein. Allerdings ist das ein recht subjektiver Test. Eine simple Balkengrafik hätte ich für besser auswertbar gehalten.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann

Geändert von Sherlock (28. Nov 2019 um 08:03 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz