Zufällig Werte aus Array auswählen
Tina
- javascript
Hallo zusammen,
ich habe ein JavaScript Array mit ca. 2300 Elementen (Vornamen).
Als zweites habe ich eine Schleife (welche öfters als 2300 mal durchlaufen werden kann) in welcher ich auf den Namen-Array zugreifen möchte und mir zufällig einen Namen herauspicken möchte.
Gibt es eine Möglichkeit aus einem Array zufällig einen Wert herauszulesen?
Beispiel:
var vornamen = new Array(.....);
for (var i=0; i<irgendEineZahl; i++)
{
document.writeln( i + ": " + getRandomVorname() + "<br>");
}
function getRandomVorname()
{
// hier wird nun ein zufälliger Eintrag aus dem vornamen Array zurück gegeben
}
Danke im Voraus.
Liebe Grüße
Tina
Grütze .. äh ... Grüße!
Gibt es eine Möglichkeit aus einem Array zufällig einen Wert herauszulesen?
Joa .. mit Math.random eine Zufallszahl zwischen 0 und 1 erzeugen, diese mit vornamen.length multiplizieren und das ganze mit Math.ceil zu einer Ganzzahl verarbeiten.
Cü
Kai
Hallo Kai,
Danke. Hat funktioniert.
Tina
Grütze .. äh ... Grüße!
Danke. Hat funktioniert.
Tina
Ich bin blöd.
Nimm statt Math.ceil Math.floor
Cü
Kai
Hello out there!
Ich bin blöd.
Zumindest nicht so blöd, Math.random zu nennen. ;-)
Nimm statt Math.ceil Math.floor
Wieviele Auslosungen dauert es sonst im Mittel, bis ein Laufzeitfehler auftritt?
See ya up the road,
Gunnar
Grütze .. äh ... Grüße!
Ich bin blöd.
Zumindest nicht so blöd, Math.random zu nennen. ;-)
Magst Du einen Schlauch haben? Fast neuwertig, nur einmal drauf gestanden. Wäre nur nett, wenn du mich vorher von Selbigem herunterführen würdest.
Nimm statt Math.ceil Math.floor
Wieviele Auslosungen dauert es sonst im Mittel, bis ein Laufzeitfehler auftritt?
Zu wenige?
Cü
Kai
Hello out there!
Zumindest nicht so blöd, Math.random zu nennen. ;-)
Magst Du einen Schlauch haben? Fast neuwertig, nur einmal drauf gestanden. Wäre nur nett, wenn du mich vorher von Selbigem herunterführen würdest.
http://forum.de.selfhtml.org/archiv/2006/7/t132358/#m856490 – her mit dem Schlauch!!1elf
Nimm statt Math.ceil Math.floor
Wieviele Auslosungen dauert es sonst im Mittel, bis ein Laufzeitfehler auftritt?Zu wenige?
??
Die Frage war durchaus ernsthaft gemeint. Ich wüsste ohne tieferes Überlegen auf die Schnelle nicht; wieviele Auslosungen es im Mittel dauert, bis Math.random() eine Zahl aus dem Intervall ](N-1)/N, 1[ liefert, Math.ceil(Math.random()) also N ergibt, der Zugriff auf das nicht existierende Arrayelement mit diesem Index also einen Laufzeitfehler.
See ya up the road,
Gunnar
Grütze .. äh ... Grüße!
Zumindest nicht so blöd, Math.random zu nennen. ;-)
http://forum.de.selfhtml.org/archiv/2006/7/t132358/#m856490 – her mit dem Schlauch!!1elf
Ich bin wohl wirklich zu doof. Ich _habe_ doch Math.random genannt? Den Schlauch bekommst du trotzdem, ist nur in der Mitte etwas platt ;)
Wieviele Auslosungen dauert es sonst im Mittel, bis ein Laufzeitfehler auftritt?
Zu wenige?
Die Frage war durchaus ernsthaft gemeint. Ich wüsste ohne tieferes Überlegen auf die Schnelle nicht; wieviele Auslosungen es im Mittel dauert, bis Math.random() eine Zahl aus dem Intervall ](N-1)/N, 1[ liefert, Math.ceil(Math.random()) also N ergibt, der Zugriff auf das nicht existierende Arrayelement mit diesem Index also einen Laufzeitfehler.
Ach so. Ich habe angenommen, daß es eine Frage sei, zu der du bereits die Antwort kennst und mit der du mich auf die Probe stellen wolltest. Ich wüßte es auch nicht, meine Antwort "zu wenige" basiert daher ausschließlich auf Murphy, im Testbetrieb wird der Fall garantiert auch bei 5000 Durchläufen nicht auftreten, im Produktivbetrieb jedoch bei < 10 ;)
Cü
Kai
Hello out there!
Ich bin wohl wirklich zu doof.
Nein. Ich.
Ich _habe_ doch Math.random genannt?
Argl, das meinte ich auch nicht; sondern stattdessen in
Zumindest nicht so blöd, Math.random zu nennen. ;-)
Math.round
Fängt ja auch mit 'r' an ... Mein Fehler.
See ya up the road,
Gunnar
Grütze .. äh ... Grüße!
Math.round
Fängt ja auch mit 'r' an ... Mein Fehler.
Alles klar. Jetzt verstehe ich es auch. Gut, daß es kein Beispiel war, das z.B. Math.abs() benötigt, Methoden mit 'a' gäbe es direkt vier ;)
Aber besser als ich .. 'Math.floor' und 'Math.ceil' wervechsel ich irgendwie mit konstant, obwohl f!=c . *grummel*
Cü
Kai
hi,
Die Frage war durchaus ernsthaft gemeint. Ich wüsste ohne tieferes Überlegen auf die Schnelle nicht; wieviele Auslosungen es im Mittel dauert, bis Math.random() eine Zahl aus dem Intervall ](N-1)/N, 1[ liefert, Math.ceil(Math.random()) also N ergibt
Math.ceil(Math.random()*N) meinst du vermutlich.
der Zugriff auf das nicht existierende Arrayelement mit diesem Index also einen Laufzeitfehler.
Wenn davon auszugehen ist, dass Math.Random einen gleichverteilten Zufall bietet, müsste der Fall doch im Mittel nach N "Ziehungen" eintreten, oder?
gruß,
wahsaga
Hello out there!
Math.ceil(Math.random()*N) meinst du vermutlich.
Klar.
Wenn davon auszugehen ist, dass Math.Random einen gleichverteilten Zufall bietet, müsste der Fall doch im Mittel nach N "Ziehungen" eintreten, oder?
Ich glaube nicht, dass die Anzahl der Ziehungen bis zum ersten Eintreffen eines bestimmten Ereignisses normalverteilt ist. Müsste aber erstmal nachlesen.
See ya up the road,
Gunnar
PS: Math.random meinst du vermutlich. SCNR.