UlfB: Math.random

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

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

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

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