wiberg: Zufallszahlen

Hi,

Ich versuche, zufällig die Zahlen 1,2 oder 3 zu erzeugen. Aber egal was ich mache, die Zahlen werden nicht gleichmäßig erzeugt. So gibt zum Beispiel die Zeile

Math.round(Math.random() * 2) + 1;

zu 50& Zweien und zu je 25% Einsen und Dreien aus.
Die Zeile

Math.round(Math.random() * 3);

gibt zu zwei Dritteln Einsen und Zweien und zu einem Drittel Nullen und Dreien aus.
Wie erzeuge ich nun gleichmäßig verteilt Einsen, Zweien und Dreien?

  1. Hallo wiberg,

    versuch mal

    Math.ceil(Math.random() * 3);

    Gruss aus Luzern,
    Daniel

  2. hallo!

    könnte vielleicht daran liegen, dass du die zahlen rundest, es wäre besser, wenn du sie grundsätzlich nach oben rundest, dann fällt auch die null weg und wenn 66 % 1er und 2er sind und 33 % 0er und 3er, heißt:

    33% 1er
    33% 2er
    33% nuller und dreier

    wenn nun der nuller wegfallt hat der dreier auch 33 % und alle sind glücklich :-)

    sprich: Math.ceil(Math.random()*3)

    müsst passen

    wif werri frendli grietinks

  3. Hallo,

    Ich versuche, zufällig die Zahlen 1,2 oder 3 zu erzeugen. Aber egal was ich mache, die Zahlen werden nicht gleichmäßig erzeugt.

    Probiere es so:

    function Zufallszahl(von,bis)
    {
      var z;
      z=Math.round(von+(bis-von)*Math.random());
      return z;
    }

    var temp,feld=new Array();

    while(feld.length<3)
    {
      temp=Zufallszahl(1,3);
      if(feld.join(",").indexOf(temp)==-1)feld[feld.length]=temp;
    }

    alert(feld);

    MfG, Thomas

  4. ceil arbeitet perfekt, vielen Dank!