Zufallsgenerator

Status
Nicht offen für weitere Antworten.

demarc

Mitglied
Hi Freunde

also ich stehe vor einer neuen kleinen Aufgabe.

Es geht um einen Zufallsgenerator also ein kleines Würfelspiel. Es sollen also nur die Zahlen 1-6 zufällig ausgegeben werden. Ich muss den Zufallsgenerator der Klasse Math benutzen und 3 mal hintereinander würfeln außer ich bekomme einen Pasch dann hört es auf.

Mein Ansatz sieht wie folgt aus.

Ich versuche über die Systemzeit und 2 Faktoren eine Zufallszahl wie folgt zu errechnen:

a und c sind frei wählbare Werte. (Man könnte hier die Anzahl aller laufenden Prozesse oder die Anzahl der Schleifendurchläufe nahmen um die Zahl zufällig zu generieren, jedoch ist dies nicht verlangt.)

Java:
long m= Integer.MAX_VALUE
	x= System.currentTimeMillis();
		zufallszahl = (int) ((a*x+c)%m);

Jetzt bekomm ich hier zwar immer eine neue Zahl ausgegeben, weiß aber nicht wie ich auf die Zahlen 1 bis 6 komme und dann fortführe. Desweitern soll ich den Zufallsgenerator der Java API als zweiten „Würfel“ nutzen.

Wäre nett, wenn mir jemand beim Ansatz helfen könnte.
Grüße
Marc
 
B

bygones

Gast
warum so kompliziert ?

[c](int) (1 + Math.random() * 6));[/c]
[c]new Random().nextInt(6) + 1[/c]

ausserdem heisst doch deine Aufgabe du sollst den Math.random benutzen, was du aber nicht tust ?!
 
Zuletzt bearbeitet von einem Moderator:

faetzminator

Gesperrter Benutzer
ich würde auf folgendes tippen:
Java:
long m= 6;
    x= System.currentTimeMillis();
        zufallszahl = (int) ((a*x+c)%m) + 1;
 

demarc

Mitglied
ich soll die System.currentTime und auch all das andere nutzen was da ist sonst ist die aufgabe unvollständig
 

eRaaaa

Top Contributor
geht wohl um sowas hier:
Zufallsgeneratoren funktionieren häufig nach folgender Formel:
Xk+1= (a * Xk+ c) mod m

wenn das die gleiche aufgabe ist wie ich sie per pn bekommen habe, soll nur der 2. würfel mit math.random benutzt werden. wenns nicht die gleiche aufgabe ist, dann ignoriert meinen post :)
 

demarc

Mitglied
doch doch das ist die aufgabe darum will ich es ja über die system.currentTime und mit momolo machen
 

demarc

Mitglied
Wie bereits gesagt:
Java:
long a = [irgendwas];
long c = [irgendwas];
int m = 6;
long x = System.currentTimeMillis();
int zufallszahl = (int) ((a*x+c)%m) + 1;

Edit:

momolo :lol: modulo ;)


danke für denn tipp
aber ich meinte modulo sowas kommt vor

schwachsinn schließ das thema da helf ich mir lieber selbst!
danke für die ernsten antworten
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben