Math.random
UlfB
- java
Hi,
im Rahmen einer Programmierübung wolte ich mir einen Java-Würfel programmieren, dem ich 2 Werte liefere zwischen denen er mir eine ganzzahlige Zufallszahl zurückgibt. Die gelieferten Ergebnisse sind jedoch für Zufallszahlen recht _unwahrscheinlich_. Im Archiv habe ich einen Verweis auf eine Math.floor()-Methode gefunden, ich weiss aber nicht, was diese jetzt bewirken soll, ich konnte sie nicht verwenden.
Wäre froh über Hilfe,
Ulf
Der _Wuerfel_
class Wuerfel
{
static int wurfErmitteln (int unten, int oben) //oben muss kleiner als unten sein
{
int zZ;
int bereich;
bereich = oben-unten;
zZ = Math.round (10*((float) Math.floor(Math.random()))); //zZ ist Zufallszahl zwischen 1 und 10
zZ = ((zZ*bereich)/10) + unten; //zZ liegt im bereich
return (zZ);
}
}
PS.Nochmal als Info: ich bin nicht der, der Java lehrt, sondern der, der Java lernt ;-)
Sup!
»» zZ = Math.round (10*((float) Math.floor(Math.random()))); //zZ ist Zufallszahl zwischen 1 und 10
FALSCH! Nach dem Abrunden mit Math.floor(Math.random()) ist der Wert dieses Ausdrucks immer 0...
Welch' uebler Fehler,
Gruesse,
Bio
Sup!
»» zZ = Math.round (10*((float) Math.floor(Math.random()))); //zZ ist Zufallszahl zwischen 1 und 10
FALSCH! Nach dem Abrunden mit Math.floor(Math.random()) ist der Wert dieses Ausdrucks immer 0...
Welch' uebler Fehler,
Gruesse,
Bio
UiUiUi,
da hab ich wohl auch irgendwie gar nicht gecshrieben was ich meinte, also
zZ = Math.round (10*((float) Math.random()));
so sah es eigentlich bei mir aus, das floor stand im Archiv, und ich hatte eben den von dir beschriebenen Fehler mit dem floor(naja, ist ja wohl kn fehler), aber meine frage isth halt, wie ich auf _jedem_ rechner eine ordentliche zufallszahl mit java erzeigen kann.
Scheinbar habe ich mich wieder etwas verwirrt ausgedrückt, also nochmal:
Die Methode Math.random() liefert scheinbar eine Zufallszahl, die auf irgendwelchen Rechnerprozessen basiert. Richtig?
Und auf einigen Rechnern (Unterschied auch zwischen 2 _gleichen_ Aldi-Rechnern bemerkt) sind diese Zufallszahlen alles andere als statistisch verteilt. Richtig??
Ich hätte gerne eine _bessere_ Zufallszahl, kennt jemand eine Möglichkeit?
Ich habe mir gedacht, das man zum Beispiel Math.random mit einer chaotischen Funktion koppeln könnte, oder so.
Wenn ich mich immer noch unklar ausgedrückt habe, oder wenn jemand sicher weiss, das es keine Lsg. gibt, bitte auch das posten!!
MfG,
der Ulf