![]() |
AW: Randomize-Chaos
Zitat:
|
AW: Randomize-Chaos
Zitat:
Delphi-Quellcode:
Trotzdem ist die Verteilung gleichmäßig und ohne Tendenz. Finde ich.
var
x, y: Integer; begin with Canvas do for x := 0 to ClientWidth - 1 do for y := 0 to ClientHeight - 1 do Pixels[Random(ClientWidth), Random(ClientHeight)] := clBlack; end; |
AW: Randomize-Chaos
Liste der Anhänge anzeigen (Anzahl: 1)
Popov, ich hab Deinen Code mal in ein Programm umgesetzt.
angehängt das Programm und hier ein Video nach dem 15.ten Durchgang sind dann in einem kleinen fast 800x600 Feld alle Pixel besetzt. Tatsächlich sind mir aber Bereiche aufgefallen, die immer wieder bevorzugt besetzt werden. Video, 1280x800, h264, avi (hab momentan kein avidemux, zum in anderen Container [z.B. mp4] reinpacken, sorry) ![]() 2,6 MB Wäre natürlich klasse, wenn das jemand mit Scanline umsetzen könnte ? (schneller?) |
AW: Randomize-Chaos
Zitat:
|
AW: Randomize-Chaos
Zitat:
Zitat:
|
AW: Randomize-Chaos
Zitat:
Zitat:
|
AW: Randomize-Chaos
Zitat:
Delphi-Quellcode:
Die Verteilung ist immer noch fast gleichmäßig. Nur sind hier doch tatsächlich Rechtecke zu erkennen :roll:
var
x, y: Integer; begin with Canvas do for x := 0 to ClientWidth - 1 do for y := 0 to ClientHeight - 1 do begin Randomize; Pixels[Random(ClientWidth), Random(ClientHeight)] := clBlack; end; end; |
AW: Randomize-Chaos
Mit diesem beeindruckenden Ergebnis läßt sich schlecht diskutieren.
Soweit ich weiß, ist die Quelle des Randomizes die Systemzeit. Anscheinend ist die abgerufene Auflösung nicht allzu hoch. Die Struktur ist viel zu regelmäßig, was vermutlich darauf zurückzuführen ist, daß die Schleifendauer mit der eingestellten Auflösung als ziemlich regelmäßig bzw. konstant erkannt wird. |
AW: Randomize-Chaos
Zitat:
Wenn man da ständig den Generator neu startet, kann dieses Verhalten negativ beeinflußt werden, da die Gleichverteilung über einen größeren Bereich sichergestellt wird. Nutzt man aber immer wieder nur "kleinere" Auschnitte, dann kann es passieren, daß Diese doch eine Tendenz erzeugen. PS: Delphi nutzt einen Zufallsgenerator, mit einer Sequenz von theoretisch bis zu 4 Milliarden Werten ... da kann ein Ausschnitt von nur 1000 Werten, in sich auch noch eine größere Tendenz aufweisen. Und das war besonsers zu merken, als Randomize noch nur GetTickCount verwendete (inzwischen, wenn mögich, QueryPerformanceCounter). Hat man da sehr schnell hinterienander Randomize ausgeführt und einen/mehrere Werte abgerufen, dann fiehl auf, daß sich sehr oft Wiederholungen einschlichen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 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