LabVIEWForum.de - gleichverteilte Integers geben Ungleichverteilung

LabVIEWForum.de

Normale Version: gleichverteilte Integers geben Ungleichverteilung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

bitte schaut Euch das Füllen dieses 2D Arrays mit Zahlen an. Die Adressen sind völlig gleichverteilt, aber die Treffer am Rand links und oben sind nur halb so groß - ich verstehe nicht warum.

Kann mir jemand auf die Sprünge helfen?

Danke

LV9.0
Hallo, Gottfried,

hier liegt dein Fehler:
[attachment=22284]

Deine Index-Auswahl ist nicht gleichverteilt.
Bsp: Eingabe-Parameter size=3, dann ist dein 2D-Array also 9x9 groß, erlaubte Indices also 0 bis 8.
An der eingekreisten Stelle hat der Double-Zufallswert aber Werte von 0 bis 8,999...

Wenn du erst nach unten abrundest, funktioniert es:
snip09
[attachment=22285]

Gruß, Jens

EDIT: @schrotti: wenigstens sind wir uns einig bei der Erklärung...Wink
Du multiplizierst die Zufallszahl und indizierst damit das Array. Hier findet eine implizite Typumwandlung statt, und die rundet nicht auf den kleineren, sonderen auf den nächsten Wert. Bei size 2, also einem Array 6x6, bkommst du also 50% weniger Treffer auf 0 und 6 als auf 1,2,3,4 und 5. Da du zwei Zufallzahlen benötigst hast du am Index [0;0] nicht die Hälfte, sondern nur eine Viertel aller Treffer. Da die 6 genauso selten wie die eins getroffen wird müsste ein 2D-Array am Ende eigentlich an allen vier Ecken 1/4, auf den Geraden zwischen den Ecken 1/2 und der Rest 1 der Trefferhäufigkeit haben. Das du das nicht siehst liegt daran, dass es den Index 6 in einem Array der Größe 6x6 nicht gibt. Wenn du die Zufahlszahlen anstatt mit Arraylänge mit Arraylänge-1 multiplizierst erkennst du sofort den Fehler. Lösung siehe unten.
[attachment=22286]

Edit: Ich sollte vor dem Antworten auf Vorschau drücken, dann hätte ich gesehen, dass Jens schon vor Urzeiten geantwortet hatte.
Sorry die Wortwahl: "ich bin ein Depp"

Danke Euch - ich hab's einfach nicht gesehen

Gottfried
Referenz-URLs