komplettten arry überprüfen
Sören
- javascript
0 Vinzenz Mai0 Sören
0 Kai345
Hi,
ich hab einen Arry, wo ich per Zufall zahlen hinzufüge. Als Vorgabe habe ich, das ich einen wert eingeben und er mir zahlen bis zu diesem wert in einen Array einfügt.Dies soll in einer zufälligen Reihenfolge geschehen. Dies habe ich mit "var rand = Math.round((Math.random()*100)/(100/8))+1" gelöst. jetzt will ich den wert einem Arry hinzufügen, aber nur, wenn dieser wert nicht schon 2 mal vorhanden ist...
ich hab schon einiges probiert, aber ich komm einfach nicht drauf, wie ich das Problem lösen kann.
Gruß
Sören
Hallo Sören,
ich hab einen Arry, wo ich per Zufall zahlen hinzufüge. Als Vorgabe habe ich, das ich einen wert eingeben und er mir zahlen bis zu diesem wert in einen Array einfügt.Dies soll in einer zufälligen Reihenfolge geschehen. Dies habe ich mit "var rand = Math.round((Math.random()*100)/(100/8))+1" gelöst.
lies Dir bitte http://aktuell.de.selfhtml.org/artikel/javascript/zufallszahlen/index.htm durch, um zu einer besseren Funktion zu kommen.
jetzt will ich den wert einem Arry hinzufügen, aber nur, wenn dieser wert nicht schon 2 mal vorhanden ist...
erstelle Dir ein Array für die bisher eingetragenen Werte.
Wenn Du eine neue Zahl ziehst, dann inkrementiere den Wert des entsprechenden Eintrags.
Beispiel:
gezogene Zahl sei 5
inkrementiere vorkommen[5]
Freundliche Grüße
Vinzenz
Hallo Sören,
ich hab einen Arry, wo ich per Zufall zahlen hinzufüge. Als Vorgabe habe ich, das ich einen wert eingeben und er mir zahlen bis zu diesem wert in einen Array einfügt.Dies soll in einer zufälligen Reihenfolge geschehen. Dies habe ich mit "var rand = Math.round((Math.random()*100)/(100/8))+1" gelöst.
lies Dir bitte http://aktuell.de.selfhtml.org/artikel/javascript/zufallszahlen/index.htm durch, um zu einer besseren Funktion zu kommen.
Danke, für den Link. Der ist wirklich hilfreich.
jetzt will ich den wert einem Arry hinzufügen, aber nur, wenn dieser wert nicht schon 2 mal vorhanden ist...
erstelle Dir ein Array für die bisher eingetragenen Werte.
Wenn Du eine neue Zahl ziehst, dann inkrementiere den Wert des entsprechenden Eintrags.Beispiel:
gezogene Zahl sei 5
inkrementiere vorkommen[5]
Aber wie kann ich dann überprüfen ob die Zahl schon zweimal vorhanden ist? Muss ich das mit ner FOR-Schleife lösen und jede Zahl in dem Array einzeln überprüfen? Oder gibt es ne schnellere Lösung?
Freundliche Grüße
Vinzenz
Hallo Sören,
erstelle Dir ein Array für die bisher eingetragenen Werte.
Wenn Du eine neue Zahl ziehst, dann inkrementiere den Wert des entsprechenden Eintrags.Beispiel:
gezogene Zahl sei 5
inkrementiere vorkommen[5]
Aber wie kann ich dann überprüfen ob die Zahl schon zweimal vorhanden ist?
ziehe neue Zahl
wenn vorkommen[zahl] < 2
trage zahl ein
inkrementiere vorkommen[zahl]
ende wenn
Dabei handelst Du Dir das Problem einer potentiellen Endlosschleife ein.
Günstiger wäre es, die Lösung in dem von Kai verlinkten Thread an Deine Problemstellung (eine Wiederholung zulässig) anzupassen, weil Du somit bei jedem Ziehen einen zulässigen Wert erhältst.
Freundliche Grüße
Vinzenz
[latex]Mae govannen![/latex]
ich hab einen Arry, wo ich per Zufall zahlen hinzufüge. Als Vorgabe habe ich, das ich einen wert eingeben und er mir zahlen bis zu diesem wert in einen Array einfügt.Dies soll in einer zufälligen Reihenfolge geschehen. Dies habe ich mit "var rand = Math.round((Math.random()*100)/(100/8))+1" gelöst. jetzt will ich den wert einem Arry hinzufügen, aber nur, wenn dieser wert nicht schon 2 mal vorhanden ist...
ich hab schon einiges probiert, aber ich komm einfach nicht drauf, wie ich das Problem lösen kann.
Übrigens ist Math.round(Math.random() ...) nicht wirklich empfehlenswert
Cü,
Kai