Math.random() nicht gleichverteilt?

con-f-use

Erfahrenes Mitglied
Hallo zusammen,

ein kleines einfaches Würfelspiel als Fingerübung lebt davon, dass die Würfelergebnisse gleichverteilt sind. Das scheint bei Math.random() nicht so zu sein.

Ich bin relativ neu in Java und habe mich deshalb rundlich darüber gewundert, dass z.B. folgender Code:
Java:
public class miau {
    public static void main(String[] args){
        int[] arr = {0,0,0,0,0,0,0,0,0,0};
        for (int i=0; i<10000; i++) {
            int rand = (int) Math.round(Math.random()*9);
            arr[rand]++;
        }
        for(int i=0; i<arr.length; i++)
            System.out.println(arr[i]);
    }
}
dieses Ergebnis bringt:
548
1146
1147
1094
1077
1139
1042
1126
1104
577
Ich schätze mal das liegt am Math.round().

Der erste und der letzte Wert fallen in ihrer Häufigkeit sehr aus dem Ramen. Wie kann ich mit Java gleichverteilte Zufallszahlen in einem bestimmten Rahmen ähnlich einfach bekommen?


Ich hoffe ihr könnt mir helfen.

Danke schonmal und G-r-uß von
con-f-use
 
Zuletzt bearbeitet:
Hat sich erledigt. Folgender Code tut, was ich will - gleichverteilte Zufallszahlen zwischen 1 und 10:
Java:
Math.floor(Math.random()*10)+1
 
Zurück