Zufallszahlen
Michi
- javascript
0 Antje Hofmann0 Carsti0 Stefan Muenz
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?
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.
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
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
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
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
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