Zufallszahlen mit Java

Status
Nicht offen für weitere Antworten.
R

Ronsard

Gast
Fuer eines meiner Programme benoetige ich einige Zufallszahlen. Bis jetzt habe ich dafuer die Befehlszeile:
int wurf= (int) (Math.random()*wuerfelart);
verwendet. Die Variable wuerfelart gibt in diesem Fall die Seitenzahl des Wuerfels an. Fuer den Fall, dass die Variable wuerfelart = 6 gilt, wuerde diese Befehlszeile das Verhalten eines sechseitigen Wuerfels simulieren.
Inzwischen wurde mir aber gesagt, dass das Zufallsverhalten nur eingeschraenkt gueltig ist! Zufallswerte, die um den Nullbereich oder den Maximalbereich (in diesem Fall 6.0 und um einen gewissen Bereich darunter) liegen, werden gerundet und wuerden damit das Ergebnis verfaelschen. Die Rundung wird durch den Teil (int) erreicht und soweit ist mir alles klar. Ich frage mich nur, in welchen Faellen dort das Durchschnittsergebnis verfaelscht wird.
Endfrage:
Wie bekomme ich ein wirklich zufaelliges, ganzzahliges Ergebnis zustande?
 
G

Gast

Gast
Oops... habe meine Frage mehrmals gesendet :( Kann einer der Admins mein zweites Posting loeschen?
 
S

SlaterB

Gast
kein Grund, auch noch ein drittes Posting dranzuhängen ;)

-------

wenn du Zahlen normal runden würdest (kleiner 0.5 wird 0, 0.5 bis 1.5 wird 1 usw.)
dann hättest du eine schlechte Verteilung, da für die 0 nur ein halb so großer Bereicht wie für die 1 vorhanden ist,

mit der (int)-Abrundung gibts aber keine Probleme, 0 bis 0.9999 wird 0, 1 bis 1.99999 wird 1 usw.,
5 bis 5.99999 wird 5,
eine 6.0 kann nicht zufällig entstehen,
du bekommst also gleichverteilt Werte von 0 bis 5,
falls du 1-6 haben möchtest, musst du ganz am Ende noch +1 addieren
 

jobu0101

Bekanntes Mitglied
Dass 0 und 1 bei (int)(2*Math.random()) wirklich recht gleich wahrscheinlich sind, sollte dieses Programm zeigen:

Code:
public class Wahrscheinlichkeit {
	int i = 0, j = 0;

	Wahrscheinlichkeit(int anz) {
		while (i < Math.abs(anz)) {
			if (rand() == 0)
				i++;
			else
				j++;
		}
		System.out.println(i);
		System.out.println(j);
		System.out.println(Math.abs(i - j));
	}

	int rand() {
		double d = Math.random();
		d *= 2;
		return (int) d;
	}

	public static void main(String[] args) {
		new Wahrscheinlichkeit(1000000000);
	}
}

Bei mir gab es folgende Ausgabe:

1000000000
1000003714
3714

Was kommt bei euch raus?
 

Wodan

Aktives Mitglied
Eine Zufallszahl zwischen x (inklusiv) und y (exklusiv) liefert Math.random() * (y - x) + x. Um ganzzahlige Zufallszahlen zwischen u und o (einschließlich) zu erhalten, berechnen wir u + Math.floor(Math.random() * (o-u+1))

Das ist die Lösung wie ich sie vor kurzem in der Java ist auch eine Insel durchgelesen habe ;)

funktioniert super ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Ungerade Zufallszahlen in JAVA Java Basics - Anfänger-Themen 31
W Java 2 Teams mit Zufallszahlen Java Basics - Anfänger-Themen 2
H Zufallszahlen generieren Java Basics - Anfänger-Themen 5
H 36 Zufallszahlen die sich nicht wiederholen Java Basics - Anfänger-Themen 27
J Zufallszahlen generieren und Werte vergleichen Java Basics - Anfänger-Themen 3
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
S Aus gleichverteilte Zufallszahlen normalverteilte Zufallszahlen generieren ? Java Basics - Anfänger-Themen 1
N Array mit Zufallszahlen und Divison Java Basics - Anfänger-Themen 7
A Mit Rekursion Zufallszahlen erstellen und größte finden Java Basics - Anfänger-Themen 5
S Schiffe versenken - Zufallszahlen in einem Array Java Basics - Anfänger-Themen 6
A Dreidimensionales Array mit Zufallszahlen befüllen Java Basics - Anfänger-Themen 18
J Klassen Math && Random: wie zufällig sind Zufallszahlen? Java Basics - Anfänger-Themen 19
T Methoden HashSet Objekt mit Zufallszahlen befüllen Java Basics - Anfänger-Themen 3
L Array-Problem/Zufallszahlen Java Basics - Anfänger-Themen 7
V Array mit Zufallszahlen - Anfänger - Hilfe Java Basics - Anfänger-Themen 12
B Zufallszahlen ohne Wiederholung Java Basics - Anfänger-Themen 10
D Array mit Zufallszahlen, dann sortieren: Hilfe gesucht! Java Basics - Anfänger-Themen 1
B Zufallszahlen unabhängig von Intervallen Java Basics - Anfänger-Themen 2
B Zufallszahlen & Laufzeitmessung (insertionSort) Java Basics - Anfänger-Themen 7
W Zufallszahlen Java Basics - Anfänger-Themen 3
R Arrays Zufallszahlen Java Basics - Anfänger-Themen 10
W 10x10 Feld mit Zufallszahlen erstellen Java Basics - Anfänger-Themen 4
B Array erstellen,ausgeben,mit zufallszahlen füllen aber wie ? Java Basics - Anfänger-Themen 1
T Zufallszahlen von x bis 80 Java Basics - Anfänger-Themen 10
P Zufallszahlen ohne zahlen einer List Java Basics - Anfänger-Themen 21
K Keine doppelten Zufallszahlen im Array Java Basics - Anfänger-Themen 17
G Zufallszahlen Gewichten Java Basics - Anfänger-Themen 3
J Zufallszahlen Häufigkeit Java Basics - Anfänger-Themen 8
L 6stellige Zufallszahlen erzeugen & auf einzigartigkeit prüfen Java Basics - Anfänger-Themen 3
R Keine doppelten Zufallszahlen Java Basics - Anfänger-Themen 2
F Array mit Zufallszahlen sortieren Java Basics - Anfänger-Themen 7
G Methoden BigInteger Zufallszahlen erzeugen Java Basics - Anfänger-Themen 5
X write() und Zufallszahlen Java Basics - Anfänger-Themen 2
L Zufallszahlen addieren Java Basics - Anfänger-Themen 6
J Mehrere Zufallszahlen erzeugen, aber keine darf doppelt erzeugt werden - Wie? Java Basics - Anfänger-Themen 5
T Problem mit Zufallszahlen Java Basics - Anfänger-Themen 2
T Matrizzen addition mit zufallszahlen Java Basics - Anfänger-Themen 10
E Zufallszahlen Java Basics - Anfänger-Themen 7
R Probleme mit Zufallszahlen Java Basics - Anfänger-Themen 10
K Datentypen Gleiche Zufallszahlen in verschiedenen Datenstrukturen Java Basics - Anfänger-Themen 6
C Zufallszahlen mit Arrays Java Basics - Anfänger-Themen 8
P Array mit Zufallszahlen von einem Wuerfel Java Basics - Anfänger-Themen 15
B Zufallszahlen in ein Array eintragen. Java Basics - Anfänger-Themen 7
P Zufallszahlen fuer Lotto generieren Java Basics - Anfänger-Themen 28
L Hilfe, doppelte Zufallszahlen Java Basics - Anfänger-Themen 13
S Wie Zufallszahlen in txt speichern? Java Basics - Anfänger-Themen 4
K zufallszahlen in Array Speichern = Nullpointer exception Java Basics - Anfänger-Themen 24
F Aus Regulären Ausdrücken Zufallszahlen bilden Java Basics - Anfänger-Themen 6
M Zufallszahlen mit Random Java Basics - Anfänger-Themen 4
S Summe von Zufallszahlen Java Basics - Anfänger-Themen 9
B Zufallszahlen Java Basics - Anfänger-Themen 5
M Zufallszahlen aus einem bestimmten Intervall Java Basics - Anfänger-Themen 5
N Normalverteilte Zufallszahlen mit benutzerdefiniertem/r EW/Var Java Basics - Anfänger-Themen 5
C Zufallszahlen Problem Java Basics - Anfänger-Themen 6
C Zufallszahlen Java Basics - Anfänger-Themen 3
C Frage zur Generierung von Zufallszahlen Java Basics - Anfänger-Themen 9
W Zufallszahlen für Array Java Basics - Anfänger-Themen 3
G Problem mit Zufallszahlen Java Basics - Anfänger-Themen 6
G Zufallszahlen die alles einmal vorkommen Java Basics - Anfänger-Themen 15
G Lotto Zufallszahlen zählen Java Basics - Anfänger-Themen 3
A Zufallszahlen generieren Java Basics - Anfänger-Themen 2
A Problem mit dem Zufallszahlen-Generator Java Basics - Anfänger-Themen 17
J Zufallszahlen einmalig ausgeben Java Basics - Anfänger-Themen 6
B Int Array mit Zufallszahlen füllen Java Basics - Anfänger-Themen 8
G Zufallszahlen ohne doppelten Wert Java Basics - Anfänger-Themen 5
N Zufallszahlen wiederholungslos erzeugen Java Basics - Anfänger-Themen 8
G Zufallszahlen erraten Java Basics - Anfänger-Themen 8
K zufallszahlen int / double, gerade / ungerade problem . Java Basics - Anfänger-Themen 2
X Lotto Zufallszahlen mit ArrayList erstellen Java Basics - Anfänger-Themen 3
M Zufallszahlen fertig! aber nice to have noch offen Java Basics - Anfänger-Themen 5
M generierung von zufallszahlen Java Basics - Anfänger-Themen 4
B Zufallszahlen erzeugen die nicht gleich sind ;/ Java Basics - Anfänger-Themen 10
M Zufallszahlen Java Basics - Anfänger-Themen 3
B Satz Zufallszahlen ohne Wiederholung Java Basics - Anfänger-Themen 14
G Zufallszahlen Java Basics - Anfänger-Themen 4
N ganzzahlige Zufallszahlen Java Basics - Anfänger-Themen 13
B Zufallszahlen je einmal in Array einfügen Java Basics - Anfänger-Themen 4
H Zufallszahlen Java Basics - Anfänger-Themen 2
J Probleme mit drucken aus Java Java Basics - Anfänger-Themen 3
Gokul Java chart library suggestion for web application? Java Basics - Anfänger-Themen 2
D wie kann ich gcc aus einer .java datei heraus aufrufen? Java Basics - Anfänger-Themen 2
S Text Formatierung in Java Java Basics - Anfänger-Themen 2
B Erste Schritte yaml parsen in Java Java Basics - Anfänger-Themen 19
C Methoden Umlaute in Java Java Basics - Anfänger-Themen 18
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
W Methoden java map ersatz für c++map Java Basics - Anfänger-Themen 3
M Erste Schritte Java Primzahltester Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 27
K Java - Enums Java Basics - Anfänger-Themen 30
tomzen Java Unterstützung für exel dateien installieren. Java Basics - Anfänger-Themen 2
Rookar java.lang.NoClassDefFoundError: org/json/JSONException Java Basics - Anfänger-Themen 2
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
F Java Object to Hashmap ? Java Basics - Anfänger-Themen 6
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
R Input/Output Verwendung des Euro-Zeichens in Java Java Basics - Anfänger-Themen 7
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben