Jens-Peter: aus Zeichenfolge alle möglichen Kombinationen ermitteln

HILFE:

Kann mir jemand sagen, wie ich sowas programmiere:
Es soll eine sechsstellige zeichnekombination (z.b.: rgt645) angegeben werden. Dann sollen alle möglichen Kombinationen ermittelt werden und auf dem Bildschirm ausgegeben werden.

Weiß da jemand was. muss nicht per javascript sein, kann auch was anderes sein.

Danke
VG jp88

  1. Weiß denn keiner wie das zu bewältigen ist..

    *schluchz*

    1. hi,

      Weiß denn keiner wie das zu bewältigen ist..

      *schluchz*

      Sag mal, aber sonst darfst du noch alles essen?
      Nach gerade mal fünf Minuten fängst du hier schon an zu drängeln.
      Bitte übe dich in Geduld - es kann sein, dass du in einer Stunde, in fünf Stunden oder auch erst übermogen eine hilfreiche Antwort bekommst.
      Abder bis dahin verschöne uns bitte mit deiner aufdringlichen Drängelei und deinem Gewimmer.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Hi wahsaga,

        Nach gerade mal fünf Minuten fängst du hier schon an zu drängeln.

        Du weisst doch, wie das mit der Ungeduld ist! Nu' lass' ihn, er wird's schon lernen.

        [...] verschöne uns bitte [...]

        Habe ich schon erwähnt, dass ich ein Faible für solche Fehlleistungen habe? Wir sollten das eindeutig in eine bestof-Liste aufnehmen. :o)

        File Griese,

        Stonie

        --
        Ein schlechtes Statement spricht für sich - jeder Kommentar ist verschwendete Energie, die einem bei wirklich wichtigen Unterfangen fehlen könnte.
        1. Hallo Stonie.

          [...] verschöne uns bitte [...]

          Habe ich schon erwähnt, dass ich ein Faible für solche Fehlleistungen habe? Wir sollten das eindeutig in eine bestof-Liste aufnehmen. :o)

          So etwas in der Art gibt es doch schon.

          Einen schönen Freitag noch.

          Gruß, Ashura

          1. Hi Ashura,

            So etwas in der Art gibt es doch schon.

            Ja, das weiss ich - aber ich dachte eigentlich mehr an eine Sammlung der schönsten Vertipper... Nujor, damit's nicht verloren geht, werde ich diesen Spruch mal dort verewigen.

            File Griese,

            Stonie

            --
            Ein schlechtes Statement spricht für sich - jeder Kommentar ist verschwendete Energie, die einem bei wirklich wichtigen Unterfangen fehlen könnte.
            1. Hallo Stonie,

              Ja, das weiss ich - aber ich dachte eigentlich mehr an eine Sammlung der schönsten Vertipper... Nujor, damit's nicht verloren geht, werde ich diesen Spruch mal dort verewigen.

              Ich dachte immer, Du hast das Archiv im Kopf?

              Gruß aus Köln-Ehrenfeld,

              Elya

              --
              1. Hallo Elya,

                Ich dachte immer, Du hast das Archiv im Kopf?

                ähm, also, weisst du, ääähhh - nicht wirklich. Aber ich hab' ein ganz gutes Gedächtnis und kann die Suche bedienen. :o)

                File libe Griese,

                Stonie

                --
                Ein schlechtes Statement spricht für sich - jeder Kommentar ist verschwendete Energie, die einem bei wirklich wichtigen Unterfangen fehlen könnte.
            2. hi,

              So etwas in der Art gibt es doch schon.

              Ja, das weiss ich - aber ich dachte eigentlich mehr an eine Sammlung der schönsten Vertipper...

              Darf ich die Subdomain freud.de.selfhtml.org vorschlagen?

              (Ihh, geh mir weg mit diesem <I>, das klebt so ...)

              gruß,
              wahsaga

              --
              /voodoo.css:
              #GeorgeWBush { position:absolute; bottom:-6ft; }
              1. Hi,

                Darf ich die Subdomain freud.de.selfhtml.org vorschlagen?

                (Ihh, geh mir weg mit diesem <I>, das klebt so ...)

                Ich finde den Vorschlag gar nicht mal so schlecht...
                Aber das <I> übernimm ich nicht... ;o)

                mfg
                -WebViper-

                --
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
    2. Hallo,

      Weiß denn keiner wie das zu bewältigen ist..

      *schluchz*

      Möchte wirklich mal wissen, wer diesen Kommentar als hilfreich bewertet hat, oder warst du das selbst?

      cu,
      Michael

      1. Moin Michael!

        Möchte wirklich mal wissen, wer diesen Kommentar als hilfreich bewertet hat, oder warst du das selbst?

        Oder da hat sich wer verklixt... ;o)

        File Griese,

        Stonie

        --
        Ein schlechtes Statement spricht für sich - jeder Kommentar ist verschwendete Energie, die einem bei wirklich wichtigen Unterfangen fehlen könnte.
        1. Hi Stonie,

          Oder da hat sich wer verklixt... ;o)

          Beim OP auch schon? Frei nach dem Motto doppelt gemoppelt hält besser. ;-)
          Btw, schönes WE.

          cu,
          Michael

  2. Hallo Jens-Peter,

    HILFE:

    Hausaufgabe? Was kann so dringend sein, dass du so schreien musst?

    Kann mir jemand sagen, wie ich sowas programmiere:

    Ich kann's dir nicht sagen, das vorneweg. Aber ich kann versuchen, dir ein bisschen Hilfestellung zu leisten:

    Hast du bereits etwas versucht, was dich nicht ans Ziel gebracht hat? Wenn ja, wo hing's? Wenn nein: Fehlt dir schon der Ansatz? Wo, genau, brauchst du Hilfe, um dein Vorhaben zu realisieren?

    Wir helfen dir jederzeit gern, deine Probleme zu lösen. Die Lösung sollte aber idealerweise am Ende von dir kommen. Deshalb müssen wir nicht nur wissen, was du vorhast, sondern auch, wo du Probleme hast, dein Vorhaben durchzuführen. Sei so nett und lass' uns das wissen, ja?

    File Griese,

    Stonie

    --
    Ein schlechtes Statement spricht für sich - jeder Kommentar ist verschwendete Energie, die einem bei wirklich wichtigen Unterfangen fehlen könnte.
  3. Hallo,

    Kann mir jemand sagen, wie ich sowas programmiere:
    Es soll eine sechsstellige zeichnekombination (z.b.: rgt645) angegeben werden. Dann sollen alle möglichen Kombinationen ermittelt werden und auf dem Bildschirm ausgegeben werden.

    Weiß da jemand was. muss nicht per javascript sein, kann auch was anderes sein.

    Danke
    VG jp88

    Deine unmögliche Art und Weise hier so zu drängeln, wurde ja schon ganz richtig von wahsaga angemerkt!

    Hier mal ein möglicher gedanklicher Ansatz:

    Mal dir die 6 Zeichen auf 6 Zettelchen.
    Nimm das erste Zettelchen raus.
    Mische die anderen Zettelchen bis du alle Kombinationen einmal hast. (*)
    Nimm das erste Zettelchen und lege es vor jede der erhaltenen Kombinationen.
    Nimm das zweite Zettelchen aus der ursprünglichen Reihenfolge raus.
    Mache dasselbe wie zuvor mit dem ersten Zettelchen.

    (*) Hier hast du die Möglichkeit rekursiv vorzugehen:

    Von den 5 Zettelchen lege das erste Zettelchen raus.
    Mische ...

    Die Rekursion wird abgebrochen, wenn du nur noch zwei Zettelchen hast.

    Rückgabe: (xy, yy)

    Um die möglicherweise entstehenden "Doppelgänger" zu vermeiden, kannst du mit einem HASH arbeiten.
    {abcdef -> abcdef}
    Doppelte Strings eliminieren sich so selbst.
    Ich glaube aber, dass keine Doppelgänger entstehen.

    Probier das erst mal mit einer kurzen Zeichenfolge von 3 Zeichen aus und prüfe, ob das so auch funktioniert.

    Aus f("abc") wird:

    "a" + f("bc") => "abc", "acb"
    "b" + f("ac") => "bac", "bca"
    "c" + f("ab") => "cab", "cba"

    Aus f("abcd") wird:

    a + f("bcd")
    b + f("acd")
    c + f("abd")
    d + f("abc")

    Es gibt sicher noch andere, möglicherweise auch fertige und einfacherere Möglichkeiten, das Problem zu lösen.

    cu,
    Micha

    1. Rückgabe: (xy, yy)

      Da muß natürlich "Rückgabe: (xy, yx)" stehen.

      1. Sorry, aber habe davon nicht so sehr viel Ahnung. Sagen wir mal so, ich habe eigentlich nur Grundkenntnisse in js, mehr eigentlich nicht.

        So, jetzt zum eigentlichen Problem:

        Ich habe ein Kennwort in meinem Account bei einem Anbieter, das Kennwort besteht soviel weiß ich noch aus genau 6 Buchstaben und Zahlen und enthält genau die Zeichen "wn9rox", so ich errinere mich nur noch an diese Zeichen, aber ich weiß nicht mehr in welcher Reihenfolge. Also versuchte ich etwas zu proggen, was nicht sehr einfallsreich war, und demnach auch nicht funktionierte *g* :

          
        <script type="text/javascript">  
              eingabe = "wn9orx"  
              x=0;  
          
               {  
                document.write(Math.random()*eingabe);  
          
               }  
        </script>  
        
        

        Kann mir da jemand weiterhelfen. Brauche wirklich dringend Zugriff auf den Account, bin schon fast am Verzweifeln(deshalb entschuldigt auch meinen vorhergehende "2." Post).

        Danke schon im Voraus für die Mühe

        Vg J.-P.

        1. Hallo!

          Ich habe ein Kennwort in meinem Account bei einem Anbieter, das Kennwort besteht soviel weiß ich noch aus genau 6 Buchstaben und Zahlen und enthält genau die Zeichen "wn9rox", so ich errinere mich nur noch an diese Zeichen, aber ich weiß nicht mehr in welcher Reihenfolge.

          Dann fordere doch eine neues Passwort an.

          mfg
            frafu

          1. Dann fordere doch eine neues Passwort an.

            Das funktioniert nicht, weil da keine E-Mail-Adresse angegeben ist. Ansonsten wäre ich ja schon längst weiter. *g*

        2. Nur nebenher angemerkt: Bei einem sechsstelligen Code sind das ziemlich viele Möglichkeiten. Um genau zu sein: 6! = 720 Stück. Selbst wenn Du die über einen Algorithmus erzeugen lässt -- willst Du die wirklich alle ausprobieren?

          http://de.wikipedia.org/wiki/Fakult%C3%A4t_%28Mathematik%29

          -- snorri

          1. Nur nebenher angemerkt: Bei einem sechsstelligen Code sind das ziemlich viele Möglichkeiten. Um genau zu sein: 6! = 720 Stück. Selbst wenn Du die über einen Algorithmus erzeugen lässt -- willst Du die wirklich alle ausprobieren?

            Ja, werde ich wohl irgendwie müssen.

  4. Musste grad ein paar Minuten auf was warten und hatte Lust auf ein wenig Denksport:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>
    <head>
     <title>Shuffle</title>
    </head>

    <body>

    <script language="JavaScript"><!--
    chars = new Array('r','g','t','6','4','5');
    for (a=0; a<chars.length; a++) {
     code = chars[a];
     for (b=0; b<chars.length; b++) {
      if (b!=a) {
       for (c=0; c<chars.length; c++) {
        if ( (c!=a) && (c!=b) ) {
         for (d=0; d<chars.length; d++) {
          if ( (d!=a) && (d!=b) && (d!=c) ) {
           for (e=0; e<chars.length; e++) {
            if ( (e!=a) && (e!=b) && (e!=c) && (e!=d) ) {
             for (f=0; f<chars.length; f++) {
              if ( (f!=a) && (f!=b) && (f!=c) && (f!=d) && (f!=e) ) {
               document.write(chars[a]+chars[b]+chars[c]+chars[d]+chars[e]+chars[f]+'<br>');
              }
             }
            }
           }
          }
         }
        }
       }
      }
     }
    }
    //--></script>

    </body>
    </html>

    Geht sicher eleganter, aber es funktioniert. Für Codes mit anderer Länge muss man es halt entsprechend anpassen.

    -- snorri

    1. Ey cool Danke.

      Soweit wär ich echt nicht gekommen.

      1. Achso noch eine kleine sache, gibt es ein Programm, mit dem man, dann alle möglichen kombinationen ausprobieren kann, sprich das die kennwörter immmer in das gleiche formular-feld einfügt und ausprobiert was es ist ???

        Danke

        Vg J.-P.

        1. Tag Jens.

          Achso noch eine kleine sache, gibt es ein Programm, mit dem man, dann alle möglichen kombinationen ausprobieren kann, sprich das die kennwörter immmer in das gleiche formular-feld einfügt und ausprobiert was es ist ???

          Dein Stichwort für eine Google-Suche heißt Brute-Force.

          Siech*fg*fred

    2. Hallo snorri,

      Diese Lösung kommt jedes mal bei diesem oder ähnlichen Problemen.
      Richtig berechnet man das natürlich so:
      [latex]f: \mathcal{P}(\Sigma) \mapsto \mathcal{P}(\Sigma^+)[/latex]
      [latex]f(s) = \bigcup_{e \in s} \left ( {e} \times f(s \setminus e) \right )[/latex]
      Wobei [latex]\Sigma[/latex] eine Zeichenmenge [latex]\Sigma^+[/latex] eine Menge von Zeichenfolgen mit mindestes Länge eins und [latex]\mathcal{P}(M)[/latex] die Potenzmenge einer Menge ist. Alle anderen Schreibweisen dürften Schulstoff sein.
      Im Archiv befinden sich auch beliebig viele Implementierungen davon.

      Grüße

      Daniel

      1. Hallo Daniel,

        Diese Lösung kommt jedes mal bei diesem oder ähnlichen Problemen.
        Richtig berechnet man das natürlich so:

        [ wüste Mathematik ]

        Wobei [latex]\Sigma[/latex] eine Zeichenmenge [latex]\Sigma^+[/latex] eine Menge von Zeichenfolgen mit mindestes Länge eins und [latex]\mathcal{P}(M)[/latex] die Potenzmenge einer Menge ist. Alle anderen Schreibweisen dürften Schulstoff sein.

        In welcher Schule?
        Ich hatte in der gymnasialen Oberstufe sogar Mathematik als Leistungskurs, aber was du da aufschreibst, sind für mich böhmische Dörfer.
        Beispielsweise kenne ich [latex]\Sigma[/latex] nur in der Bedeutung eines Summenzeichens, von einer Potenzmenge, wie du sie nennst, habe ich noch nie gehört, und die Symbolik, die du verwendest, könnte meinetwegen ebensogut ein geheimnisvoller kabbalistischer Code sein. Solches Zeug als Schulstoff hinzustellen, halte ich doch für *sehr* gewagt.

        Spontan erkenne ich allerdings aus der ursprünglichen Aufgabenstellung, dass es 6! = 720 verschiedene Möglichkeiten gibt, und dass man eine Implementierung wohl eher rekursiv versuchen sollte als mit verschachtelten Schleifen, wie snorri es uns gezeigt hat.

        So long,

        Martin

        1. Hallo Martin,

          Die bedeutung von Sigma hab ich ja extra genannt. Aber ansonsten, die Definition des Werte- und Bildbereichs einer Funktion in der ersten Zeile meine ich, hätte man in der Schule auch schon so verwendet. Und eine Vereinigung von Mengen und das Kreuzprodukt auch.
          Aber ich wollte sowieso vor allem mal Latex hier ausprobieren und dabei darauf hinweisen, dass wir das schon endlos oft durchgekaut haben, wie es richtig geht ;-)

          Grüße

          Daniel

          1. Ach ja, die Potenzmenge ist die Menge aller Teilmengen. Das ist eigentlich nicht wichtig in dem Fall, aber da die Funktion nun mal eine Menge bekommt und eine Menge zurückgibt, ist der Werte- und Bildbereich natürlich eine Menge von Mengen.
            Vielleicht kommt dieser Begriff tatsächlich nicht in der Schule vor.

          2. Hallo,

            Die bedeutung von Sigma hab ich ja extra genannt.

            stimmt, meine Anmerkung war auch eher provokativ gemeint. ;-)

            Aber ansonsten, die Definition des Werte- und Bildbereichs einer Funktion in der ersten Zeile meine ich, hätte man in der Schule auch schon so verwendet.

            Ah ja. Mengenlehre gab's bei uns ansatzweise mal in der Grundschule, und dann nie wieder. Jedenfalls nicht so explizit. Und auf die Idee, zwischen Mengen und Funktionen einen Zusammenhang herzustellen, bin ich nie gekommen.

            Und eine Vereinigung von Mengen und das Kreuzprodukt auch.

            Kreuzprodukt? Kenn ich höchstens aus der Vektorrechnung - aber das kann ich mit dem vorliegenden Thema nicht so recht in Verbindung bringen.

            Aber ich wollte sowieso vor allem mal Latex hier ausprobieren ...

            Na, das ist dir ja offenschtlich gelungen. :-)

            Schönen Abend noch,

            Martin

            1. Hallo Martin,

              Ah ja. Mengenlehre gab's bei uns ansatzweise mal in der Grundschule, und dann nie wieder. Jedenfalls nicht so explizit.

              Nein, explizit nicht. Aber so gelegetlich hat man es mal ein Bisschen benutzt.

              Kreuzprodukt?

              Sorry, das ist wirklich peinlich. Ich meine natürlich das karthesische Produkt. Hat nichts miteinander zu tun
              [latex] {a, b} \times {c, d} = {ac, ad, bc, bd}[/latex] wobei das sicher im Falle von Zeichen viele auch mit . für Konkatenation statt dem Kreuz schreiben würden.

              Die Funktion da sagt eigentlich nichts anderes als: Für jedes Element: kobiniere das Element mit allen Ergebnissen der Funktion angewendet auf die Menge ohne das gewählte Element.

              Grüße

              Daniel

              1. echo $begrüßung;

                Sorry, das ist wirklich peinlich. Ich meine natürlich das karthesische Produkt.

                René Descartes (oder auch Renatus Cartesius) war nie in Karthago.

                echo "$verabschiedung $name";

              2. Schönen guten Tag, die Herren!

                Das ist mal wieder ein klarer Fall von *ärgs*, um ehrlich zu sein. Wenn ich's notiert sehe...

                [latex] {a, b} \times {c, d} = {ac, ad, bc, bd}[/latex] [...]

                ... sieht das ausserordentlich verständlich aus. Ich tue hier also nichts anderes, als jedes einzelne Element aus einer Menge mit jedem einzelnen Element aus einer anderen Menge zu multiplizieren.

                Wobei dann die Worterklärung...

                Die Funktion da sagt eigentlich nichts anderes als: Für jedes Element: kobiniere das Element mit allen Ergebnissen der Funktion angewendet auf die Menge ohne das gewählte Element.

                ... sich meinem Verständnis vollständig entzieht.

                Oder sollte ich einfach in dem, was ich aus der Notation verstehe, "multiplizieren" durch "zusammenfassen" ersetzen? Ihr seht mich grübeln...

                Bei Wikipedia findet sich hier zu dem Suchbegriff "Konkatenation" für Mengen diese Erklärung: http://de.wikipedia.org/wiki/Konkatenation_(Mengen) - wobei ich da schon mit der Notation nicht mehr viel anfangen kann. Aber die kleine Erklärung zur Konkatenation von Zeichenketten passt dann wieder auf das, was du hier notierst.

                Ja, äh, also - ich habe nicht so wirklich das Gefühl, dass ich's peile. Das ärgert mich ein bisschen, um ehrlich zu sein. Klärt mich mal jemand umfassend auf?

                File Griese,

                Stonie

                --
                Ein schlechtes Statement spricht für sich - jeder Kommentar ist verschwendete Energie, die einem bei wirklich wichtigen Unterfangen fehlen könnte.
                1. Hallo Stonie,

                  Die Funktion da sagt eigentlich nichts anderes als: Für jedes Element: kobiniere das Element mit allen Ergebnissen der Funktion angewendet auf die Menge ohne das gewählte Element.

                  Ich bezog mich auf die Funktion, die ich in meinem ersten Posting genannt habe. Die tut das, mit dem kartesischen (jaja ist schon gut dedlfix) Produkt darüber hat die Erleuterung nichts zu tun.

                  Bei Wikipedia findet sich hier zu dem Suchbegriff "Konkatenation" für Mengen diese Erklärung: http://de.wikipedia.org/wiki/Konkatenation_(Mengen) - wobei ich da schon mit der Notation nicht mehr viel anfangen kann.

                  Die besagt einfach, dass man zwei Mengen verknüpft, indem man jeweils ein Element aus der ersten und der zweiten Menge verknüpft. Der Kreis steht dabei für irgend eine Verknüpfungsoperation. Im Falle von Anneinanderhängen von Zeichenketten schreibt man da einfach einen Punkt.
                  Steng genommen wäre [latex]{a,b} \times {c,d} = {(a,c),(a,d),(b,c),(b,d)}[/latex] eine Menge von Tupeln wärend [latex]{a,b} . {c,d} = {ac,ad,bc,bd}[/latex] eine Menge von Zeichenketten wäre.
                  Ich hätte also besser notieren sollen:
                  [latex]f: \mathcal{P}(\Sigma) \mapsto \mathcal{P}(\Sigma^+)[/latex]
                  [latex]f(s) = \bigcup_{e \in s} \left ( {e} . f(s \setminus e) \right )[/latex]
                  So ganz genau nimmt das aber sowieso keiner.
                  Naja, jedenfalls veranschaulicht das alles sehr schön, dass man mit mathematischer Notation alles so darstellen kann, dass es nicht mehr verstanden wird ;-)

                  Grüße

                  Daniel

                2. hallo Stonie,

                  Ihr seht mich grübeln...

                  Ohja, Große, ich sehe dich grübeln. Und weil es grade so schön paßt, gibts dazu auch ein erläuterndes Bildchen, das erstens das Grübeln verdeutlicht und zweitens vorhin von Swen Wacker gebraucht wurde:

                  Grüße aus Berlin

                  Christoph S.

                  --
                  Visitenkarte
                  http://www.christoph-schnauss.de
                  ss:| zu:) ls:& fo:) va:) sh:| rl:|
                  1. Hallo Christoph,

                    *GRINS* Dieser Tag _muss_ gut werden, wenn er so anfängt!

                    File Griese,

                    Stonie

                    --
                    Ein schlechtes Statement spricht für sich - jeder Kommentar ist verschwendete Energie, die einem bei wirklich wichtigen Unterfangen fehlen könnte.
                    1. Tach,

                      *GRINS* Dieser Tag _muss_ gut werden, wenn er so anfängt!

                      wie sollte ein Tag, der augenscheinlich vor 6h beginnt jemals gut werden?

                      mfg
                      Woodfighter

                      1. Hallöle Jens!

                        wie sollte ein Tag, der augenscheinlich vor 6h beginnt jemals gut werden?

                        Tja, das frage ich mich täglich - aber wat willze machen? Man zwingt mich... ;o)

                        File Griese,

                        Stonie

                        --
                        Ein schlechtes Statement spricht für sich - jeder Kommentar ist verschwendete Energie, die einem bei wirklich wichtigen Unterfangen fehlen könnte.
  5. Hallo Jens!

    HILFE:
    Kann mir jemand sagen, wie ich sowas programmiere:

    Auch, wenn man am 13. Dezember 1988 geboren und damit noch recht
    jung ist, kann man dieses Problem eigenständig lösen und muss
    keine Komplettlösung von anderen arbeitenden Menschen erwarten.

    Frag' halt deinen Informatiklehrer oder riskiere eine schlechte
    Note. Wenn in der Schule das Prinzip "SELF" nicht gilt, wo dann sonst?

    ℆, ℒacℎgas

    --
    Bei der intendierten Realisierung der linguistischen Simplifizierung
    des regionalen Idioms resultiert die Evidenz der Opportunität extrem
    apparent, den elaborierten und quantitativ opulenten Usus nicht assi-
    milierter Xenologien konsequent zu eliminieren!