Math.random() vs Random

Status
Nicht offen für weitere Antworten.

Campino

Top Contributor
hi,
ich hab grade erst mit Math.random() Zufallszahlen von 1 bis 6 ermittelt und dann mitjava.util.Random. Dabei habe ich gezähl wie oft sich welches Ergebnis ergab. Bei Random sah das so aus (die Ergebnisse anderer Testläufe waren fast identisch, bei den Sechsern sogar genau):

Einer: 1037
Zweier: 934
Dreier: 1076
Vierer: 1006
Fünfer: 974
Sechser: 0

und jetzt die andere Variante:

Einer: 1000
Zweier: 1010
Dreier: 1021
Vierer: 935
Fünfer: 998
Sechser: 1036

Das ist doch seltsam, warum liefert Random keine Sechser? Ist Random nicht so gut für Zufallszahlen geeignet wie Math.random() oder habe ich einen Fehler beim ermitteln der Zufallszahlen (Code unten)

Code:
//Math.random()
zahl=(int) (1 + Math.floor(Math.random() * (6-1+1)));
//die andere Variante
zahl=new Random().nextInt(6);

Campino
 

mic_checker

Top Contributor
Falls du einen "sichereren" Zufallszahlengenerator haben wilst, kannst dir ja mal SecureRandom angucken. Aber da du hier die Häufigkeit der 1-6 zählst, geh ich mal davon aus das das Problem nicht sicherheitskritisch ist ;)

Random verwendet afaik ja intern die Systemzeit zur Initiailisierung, müsstest mal in den Sources nachgucken wie Math das macht.
 

Sky

Top Contributor
mic_checker hat gesagt.:
Random verwendet afaik ja intern die Systemzeit zur Initiailisierung, müsstest mal in den Sources nachgucken wie Math das macht.

Ja. bei Random wird -sofern kein anderes 'seed' angegeben- die Systemzeit verwendet. Bei Math.random() wird ein Random erstellt (sofern keines initialisiert ist) und die Methode nextDouble() aufgerufen.
Die beiden Funktionen sind somit nahezu gleichwertig... Random kann jedoch auch int's und long's zurückgeben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Math.random Allgemeine Java-Themen 9
Javafan01 Deklarieren einer Math.random() Zufallszahl Allgemeine Java-Themen 16
U Math.Random anders verteilen Allgemeine Java-Themen 4
S Random() vs Math.random Allgemeine Java-Themen 4
H Math.random() Allgemeine Java-Themen 3
S Potenzieren mit rationalen Potenzen ohne Math.pow Allgemeine Java-Themen 16
Arif Math.cos liefert komische Werte Allgemeine Java-Themen 8
O Best Practice Laufzeitvergleich Math.sqrt() aus Java und sqrt() aus C++ Allgemeine Java-Themen 1
J Methoden Math.abs Allgemeine Java-Themen 3
so_ein_Komischer Erste Schritte java Math Klasse finden? Allgemeine Java-Themen 2
J Commons Math 3.0 Multiple Regression Allgemeine Java-Themen 4
S OOP Apache Commons Math - Verwendung von Genetics - Wie werden Daten in Chromosomen gespeichert? Allgemeine Java-Themen 4
V Math.log auf meine Art zu ungenau Allgemeine Java-Themen 15
H Math.acos(10) => NaN Allgemeine Java-Themen 11
E Warum kann Math nicht instanziert werden? Allgemeine Java-Themen 17
h0b0 WTF? - Problem mit Math.pow() Allgemeine Java-Themen 6
A Wird Math.sin bzw. sinus auf Maschinencode abgebildet Allgemeine Java-Themen 6
isowiz Unerklärliches Problem mit Math.pow :( Allgemeine Java-Themen 4
M Math-String-Formel berechnen lassen Allgemeine Java-Themen 4
D java.lang.Math fehlerhaft? Allgemeine Java-Themen 18
E Random Generator Allgemeine Java-Themen 6
Zrebna Random Number - Generische Formel zwischen zwei INKLUSIVEN Werten Allgemeine Java-Themen 16
G Aus JTextField Zahlen auslesen und random generieren Allgemeine Java-Themen 10
heyluigi Random Integer Array Ausgabe nach Größe sortieren Allgemeine Java-Themen 6
S Random Passwort für den User + Hashen Allgemeine Java-Themen 6
BRoll Random - Wie aufgebaut? Allgemeine Java-Themen 9
T java.uil.Random liefert negative Werte Allgemeine Java-Themen 2
G Random zeichensatz Allgemeine Java-Themen 2
N Die Klasse Random in Java Allgemeine Java-Themen 3
H java.util.random magischer Startwert? Allgemeine Java-Themen 2
L Zufallszahlen mit Random.nextdouble() Allgemeine Java-Themen 3
dayaftereh Random Numbers in Java Allgemeine Java-Themen 7
Q Random mit beeinflusster Wahrscheinlichkeit Allgemeine Java-Themen 4
I Random Acces auf ein Set Allgemeine Java-Themen 4
S Random funktion in einer Grafischen Oberfläche Allgemeine Java-Themen 10
ARadauer Random keine Zahlen doppelt Allgemeine Java-Themen 4
S Random Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben