Michi: Zufallszahlen

Hallo zusammen,
durch olgende Funktion habe ich eine Zufallszahl zwischen 1 und 16 generiert:

function zufall(){
a=Math.random();
a*=16;
a=Math.ceil(a)
alert(a);
}

Durch <BODY onLoad="zufall();"> gebe ich diese bei Aufruf der Seite aus.

Folgende Frage:

Kann ich auch 3 Zufallszahlen generieren und diese wie oben ausgeben lassen?

  1. Hallo zusammen,
    durch olgende Funktion habe ich eine Zufallszahl zwischen 1 und 16 generiert:

    function zufall(){

    »»  a=Math.random();
    »»  a*=16;
    »»  a=Math.ceil(a)
    »»  alert(a);

    }

    Durch <BODY onLoad="zufall();"> gebe ich diese bei Aufruf der Seite aus.

    Folgende Frage:

    Kann ich auch 3 Zufallszahlen generieren und diese wie oben ausgeben lassen?

    Ja Michi, das kannst du und mehr wenn du willst.

    Durch eine for-schleife mit 3 oder mehr Umläufen und in jedem Umlauf die Ausgabe des Wertes. Ablegen könntest du den Wert in einem Array.

    Viele Grüße

    Antje

    PS: Fein das du dich zur intensiveren Beschäftigung mit JS durchgerungen hast.

    1. Dann schicke ich dir noch den Vergleich hinterher :-)

      <SCRIPT Language="Javascript">
      <!--
        Zahl=new Array(3);
        function zufall(){
        for (i=0;i<3;i++)
      {
        a=Math.random();
        b=a*16;
        a=Math.ceil(b);
        Zahl[i]=a;
        if ((i==1)&& (a==Zahl[0])) i--;
        if ((i==2)&& ((a==Zahl[0]) (a==Zahl[1]))) i--;

      }
      alert(Zahl);
      }
        //-->
      </SCRIPT>

      Stimmen die Zahlen überein, wird die Schleife mit i-- zurückgesetzt und eben ein zusätzlicher Schleifendurchlauf gemacht. Solange bis alle voneinander verschieden sind.

      Viele Grüße

      Antje

  2. Tach auch,

    Vielleicht verstehe ich Deine Frage nicht, aber:

    function zufall(){
    a=Math.random();
    a*=16;
    a=Math.ceil(a)
    b=Math.random();
    b*=16;
    b=Math.ceil(b)
    alert(a + "," + b);
    }

    Gibt zwei Zufallszahlen aus. Beliebig erweiterbar.

    CU,

    Carsti

    1. Tach auch,

      Vielleicht verstehe ich Deine Frage nicht, aber:

      function zufall(){
      a=Math.random();
      a*=16;
      a=Math.ceil(a)
      b=Math.random();
      b*=16;
      b=Math.ceil(b)
      alert(a + "," + b);
      }

      Gibt zwei Zufallszahlen aus. Beliebig erweiterbar.

      CU,

      Carsti

      Hi Carsti,
      habe ich auch schon probiert gehabt. so werden mir aber (in deinem Beispiel) 2 gleiche Zufallszahlen ausgeben. Ich möchte aber z. B. 3 verschiedene Zufallszahlen. Wie kann ich außerdem ausschließen, daß Zufallszahl1 ungleich Zufallszahl2 ungleich Zufallszahl3 ist?

      Michi

      1. Tach auch!

        Wieso habe ich nur den Eindruck, ich verstehe Dich nicht richtig? :-)

        function zufall(){
        a=Math.random();
        a*=16;
        a=Math.ceil(a)
        b=Math.random();
        b*=16;
        b=Math.ceil(b)
        if (a != b)
           {alert(a + "," + b);}
        else
           {alert('Jetzt sind sie gleich! Ich versuchs nochmal!'); zufall();}  
        }

        Zwei Zufallszahlen, wenn sie identisch sind - nochmal.

        CU,

        Carsti

  3. Hallo Carsti

    Kann ich auch 3 Zufallszahlen generieren und diese wie oben ausgeben lassen?

    Indem du eine uebergeordnete Funktion schreibst und diese aufrufst, etwa so:

    function dreiZahlen() {
      var a,b,c;
      a = zufall();
      b = window.setTimeout("zufall()",1234);
      c = window.setTimeout("zufall()",987);
      alert(a + " / " + b + " / " + c);
    }

    function zufall(){
    x=Math.random();
    x*=16;
    x=Math.ceil(x);
    return(x);
    }

    Ich hoffe das mit dem return-Wert in Verbindung mit setTimeout klappt so. der Timeout scheint mir wichtig, denn random arbeitet intern glaube ich auch mit dem Millisekundentrick, um Zufall vorzugaukeln, wo es keinen Zufall gibt <g>.

    viele Gruesse
      Stefan Muenz