# Zufallsgenerator



## demarc (24. Nov 2009)

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.)


```
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


----------



## bygones (24. Nov 2009)

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 ?!


----------



## faetzminator (24. Nov 2009)

ich würde auf folgendes tippen:

```
long m= 6;
    x= System.currentTimeMillis();
        zufallszahl = (int) ((a*x+c)%m) + 1;
```


----------



## demarc (24. Nov 2009)

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


----------



## bygones (24. Nov 2009)

demarc hat gesagt.:


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



siehe mein Edit... du sollst Math.random benutzen, aber auch currentTime, und auch Random()  ?


----------



## eRaaaa (24. Nov 2009)

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 (24. Nov 2009)

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


----------



## faetzminator (24. Nov 2009)

Wie bereits gesagt:

```
long a = [irgendwas];
long c = [irgendwas];
int m = 6;
long x = System.currentTimeMillis();
int zufallszahl = (int) ((a*x+c)%m) + 1;
```

Edit:


demarc hat gesagt.:


> [...] mit momolo machen


momolo :lol: modulo


----------



## ARadauer (24. Nov 2009)

.::MoMoLo::. was für ein Zirkus ;-=


----------



## demarc (24. Nov 2009)

faetzminator hat gesagt.:


> Wie bereits gesagt:
> 
> ```
> long a = [irgendwas];
> ...




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


----------



## faetzminator (25. Nov 2009)

Was ist denn an meiner Antwort inkorrekt?


----------

