Sören: komplettten arry überprüfen

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

  1. 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

    1. 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

      1. 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

  2. [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.

    Schau hier

    Übrigens ist Math.round(Math.random() ...) nicht wirklich empfehlenswert

    Cü,

    Kai

    --
    Some things in life are bad, they can really make you mad
    Other things just make you swear and curse.
    When you're chewing on life's gristle, don't grumble, give a whistle
    And this'll help things turn out for the best...
    ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|]