Hallo zusammen,
um das Pixelsetzen des Varitronix Displays auszuprobieren, habe ich die Werte der Pixel über RND() gesetzt.
Dabei sind mir einige Besonderheiten der RND() Funktion aufgefallen:
Grundsätzlich werden alle Werte generiert, solange man nur eine RND verwendet, aber
RND(2^x)
Dabei sah das Ergebnis dann deutlich anders – und schlechter – aus, weil für jede RND nicht immer alle Werte erzeugt werden:
Beide RND(2^x)
Eine RND(gerade), eine RND(ungerade)
Beide RND(gerade)
100x50.jpg
Beide RND(ungerade)
Damit man das besser erkennen kann, habe ich mal ein paar Bilder angehangen.
Oben ist immer die RND für x, links die RND für y gezeigt.
Um das Ganze herum ist noch ein Rahmen von einem Pixel damit ich erkennen kann, wo die generierten Werte wirklich aufhören.
Schlussfolgerung ist, dass ich für eine RND definitiv keine 2er Potenzen als Max-Werte nehme.
Und sollten es mal 2 oder mehr RNDs brauchen, dann alle mit ungeraden Max-Werten.
um das Pixelsetzen des Varitronix Displays auszuprobieren, habe ich die Werte der Pixel über RND() gesetzt.
Dabei sind mir einige Besonderheiten der RND() Funktion aufgefallen:
Grundsätzlich werden alle Werte generiert, solange man nur eine RND verwendet, aber
RND(2^x)
- ist immer absolut gleichverteilt,
- alle Werte treten mit der gleichen Häufigkeit auf
- erst wenn alle einmal generiert wurden, kommt der erste ein zweites Mal dran usw.
- die Reihenfolge ist dabei konstant
- sind recht gleichmäßig verteilt, max. Abweichung etwa 25%, wird aber immer wieder ausgegliche
- Reihenfolge ändert sich dauernd
- Primzahlen ergeben keine Verbesserung
Dabei sah das Ergebnis dann deutlich anders – und schlechter – aus, weil für jede RND nicht immer alle Werte erzeugt werden:
Beide RND(2^x)
- Es werden nur noch 2^x-1 Kombinationen der größeren Zahl erzeugt.
- Dies liegt daran, dass eine die 2erPotenz der anderen ist und die Reihenfolge der erzeugten Zufallszahlen für RND(2^x) konstant ist
- Eine solche Kombination sollte man also auf jeden Fall vermeiden
Eine RND(gerade), eine RND(ungerade)
- Für die gerade RND werden nur gerade bzw. nur ungerade Werte erzeugt, für die ungerade alle
Beide RND(gerade)
- Für die eine Zufallszahl werden nur gerade, für die andere nur ungerade Werte generiert
100x50.jpg
Beide RND(ungerade)
- Hier werden alle Werte erzeugt
Damit man das besser erkennen kann, habe ich mal ein paar Bilder angehangen.
Oben ist immer die RND für x, links die RND für y gezeigt.
Um das Ganze herum ist noch ein Rahmen von einem Pixel damit ich erkennen kann, wo die generierten Werte wirklich aufhören.
Schlussfolgerung ist, dass ich für eine RND definitiv keine 2er Potenzen als Max-Werte nehme.
Und sollten es mal 2 oder mehr RNDs brauchen, dann alle mit ungeraden Max-Werten.