Wörterkombinationen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wörterkombinationen

    Hi Forums,

    ich stehe im moment vor einer meiner eigenen Grenzen, und würde mich freuen wenn mir jemand helfen könnte.

    Folgendes Problem:

    Mit einem Skript, soll man Wörter eingeben können, also eine Liste erstellen. Wäre ja nicht das Problem. Wie die wörter in die Liste gelangen, sei also dahingestellt.

    Jetzt aber, soll ein Skript alle Kombinationmöglichkeiten auflisten.
    Sprich, angenommen es sind 3 Wörter in der Liste.

    Wörter: Baum, Haus, Straße

    Ergebnis:

    Baum
    Haus
    Straße

    Baum_Baum
    Baum_Haus
    Baum_Straße

    Haus_Haus
    Haus_Baum
    Haus_Straße

    Straße_Straße
    Straße_Haus
    Straße_Baum

    Beliebig viele Wörter sollen möglich sein. Bei meiner Aufgabe etwa 20 Wörter.

    Ich weiß nicht, wie man sowas mit PHP bewerkstelligen soll...

    Wäre für jede Unterstützung dankbar.

    Grüße

    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
    sondern mit den Augen das Manual zu lesen.

  • #2
    nun ja, auf jeden fall mit arrays und rekursion.
    klar!mh, gut mein c++ lehrer meint ja immernoch es gäbe nichts, wofür man so etwas wirklich bräuchte
    - wär ja schlechter programmierstil, allein deshalb KANN man das ja schon gar nicht verwenden*g*-
    aber ich empfehls trozdem mal.
    (tz, das is ja auch ne nase)


    nuja ich wollt eh mal son teil machen wo man unordentliche buchstaben eingeben kann und die dann in jeder kombinationsmöglichkeit aufgelistet werden.
    (selbst bei gewinnspielen könnte man faul sein)
    mal gucken, vielleicht hab ich ja gleich nix besseres zu tun ^^

    Kommentar


    • #3
      arrays und rekursion ist toll. aber ich weiß nicht wie ich die rekursion aufbauen soll...

      Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
      sondern mit den Augen das Manual zu lesen.

      Kommentar


      • #4
        Reichen da nicht einfach 2 verschachtelte for-Schleifen?

        Kommentar


        • #5
          ach MOOOOOMENT!

          das steht da ja ganz anders , als ich das dachte !!
          *doing*
          klar, dann fällt die rekursion auch weg.
          ich dachte "mhja, wir wissen die anzahl der elemente und die tiefe nicht..." und ich hab das auch nach folgendem prinzip aufgebaut:

          $element=array('a','b','c');

          möglichkeiten:
          a_b_c
          a_c_b
          b_a_c
          b_c_a
          c_a_b
          c_b_a

          *arrgh* ne ja - problem futsch...

          Kommentar


          • #6
            Original geschrieben von quarks
            Reichen da nicht einfach 2 verschachtelte for-Schleifen?

            vorschläge der umsetzung? ^^

            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
            sondern mit den Augen das Manual zu lesen.

            Kommentar


            • #7
              mhja, also wenn ichs mal eben hinschmieren soll wärs z.b. so irgendwie:
              PHP-Code:
              $wort=array('a','b','c');

              $anzwoerter=count($wort);
              for(
              $i=0,$j=0$i<$anzwoerter*$anzwoerter$i++,$j++)
              {
               echo 
              $wort[$i/$anzwoerter].'_';

               if(
              $j>$anzwoerter-1)
                  
              $j=0;

               echo 
              $wort[$j];
               echo 
              '<br>';

              das schließt aber deine erste ausgabegruppe nicht ein(jeder wert einzelnd),
              die könnteste aber hinbekommen, wenn du folgendes ersetzt:
              PHP-Code:
              $wort=array('''a','b','c');
              ...
              echo 
              $wort[$i/$anzwoerter];
              ... 
              mh... dann bräuchte man noch ne ganz unerotische if, weil werte die allein stehen doppelt ausgegeben werden.

              mhjo... so was kommt dabei raus, wenn man ringspeicher lernt und gleichzeitig den rechner an hat und man die ganzen mails sofort sieht *schwirr*



              *gnee*

              Kommentar


              • #8
                danke, ich versuche das mal. das mit IF ist nicht nötig.. dublikate kan man evtl. in einem anderem array rausstreichen meld mcih bald zurück

                Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                sondern mit den Augen das Manual zu lesen.

                Kommentar


                • #9
                  Okay. Ich habe es mal geändert. Aktueller Stand:

                  PHP-Code:
                  $wort = array('katze','maus','teller');
                    
                  $anzwoerter COUNT($wort);

                     foreach ( 
                  $wort AS $var ) {
                       
                  $list[] = $var.'<br>';
                     }


                      for(
                  $i=0,$j=0$i<$anzwoerter*$anzwoerter$i++,$j++) {
                         
                  $list[] = $wort[$i/$anzwoerter].'_';

                          if(
                  $j>$anzwoerter-1$j=0;

                            
                  $list[] = $wort[$j].'<br>';

                     }


                   echo 
                  implode('',$list); 

                  Liefert:

                  katze
                  maus
                  teller
                  katze_katze
                  katze_maus
                  katze_teller
                  maus_katze
                  maus_maus
                  maus_teller
                  teller_katze
                  teller_maus
                  teller_teller

                  jetzt müsste man ncoh einen weg finden der das liefert:

                  das er bis zu drei vier x kombinationen durchgeht, genau das ist das kopfzerbrechende.

                  1malig alles X
                  2malig alles X_Y
                  3malig alles X_Y_Z
                  4malig alles X_Y_Z_U
                  Zuletzt geändert von xManUx; 07.06.2005, 20:16.

                  Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                  sondern mit den Augen das Manual zu lesen.

                  Kommentar


                  • #10
                    Original geschrieben von xManUx
                    vorschläge der umsetzung? ^^
                    PHP-Code:
                    for(...)
                    {
                         for(...)
                         {
                            ....
                         }

                    ich weiss ja nicht wo deine grenzen liegen, aber die ... solltest du schon selbst mit inhalt füllen können
                    Kissolino.com

                    Kommentar


                    • #11
                      ach so - ich dachte nich?
                      naja kommt halt drauf an wie mans kombinieren will.
                      in dem fall hatt ich doch recht und ne rekursion wird benötigt.
                      mh... kribbelts mich ja schon inne finger.
                      muss aber noch lernen ohne ende
                      c'est la vie...
                      na da wünsch ich euch heute noch viel glück.
                      ich guck dann nochmal vorbei

                      (sorry *schnüff*)


                      ps: [@ Wurzel]
                      bitte beim nächsten mal augen offen beim lesen, ja? *zwinker*
                      geh mal davon aus, dass wir NICHT wissen wie viele zellen und spalten unser array hat. ja gut - ich hab auch total die verständnisprobleme, aber trozdem. is einfach schöner! *smile*
                      morgen wird vielleicht nicht ne spalte 4, sondern auch 8 oder gar 290 gebraucht, weil einer hier rein kommt und irgendwelche komischen schachspielzüge berechnen will - dem wär dann schonmal nen bisserl geholfen und man is doch nett, nichwahr?

                      wenn ich da bis ich wieder komm keine selbstaufrufe sehe, dann... ...ach ich freu mich jetzt schon aufs basteln
                      Zuletzt geändert von DarkAngelSh; 07.06.2005, 20:30.

                      Kommentar


                      • #12
                        @DarkAngelSh
                        im eingangspost war von 2er gruppen die rede, den ansatz hatte quarks aufgezeigt, ich hab nur zitiert. sonst noch fragen?
                        Kissolino.com

                        Kommentar


                        • #13
                          klar:
                          warum hast du dann gepostet?
                          nein, nich bös nehmen, aber ich hab immerhin schon den source fertig dahingekrizelt. war also quasi überflüssig.
                          hätte natürlich ne erklärung gereicht.
                          naja einigen wir uns auf du warst minimalistisch und ich überschwänglich? *fg*

                          zumal hieß es einen post (10min?) vor deinem eintrag
                          -und das war folglich nun das thema-
                          jetzt müsste man ncoh einen weg finden der das liefert:

                          das er bis zu drei vier x kombinationen durchgeht, genau das ist das kopfzerbrechende.

                          1malig alles X
                          2malig alles X_Y
                          3malig alles X_Y_Z
                          4malig alles X_Y_Z_U
                          das andere war doch schon gegessen,
                          nun gehts ja im prinzip um standart rekursion,
                          oder bin ich mal wieder total durch?

                          Kommentar


                          • #14
                            Nochmal:

                            Mein Ziel ist es, wenn es 20 Wörter gäbe, dass quasi nahezu jede Wortkombination vorkommt.

                            Alle einzeln, alle in 2er Gruppen, in 3er Gruppen etc. Eben soviele Gruppen, wie es Wörter gibt.

                            Sprich: Bei 20 Wörtern: (20*20) ^ 20 Kombinationen ( Wenn die Formel so stimmt... )

                            Wörter: Maus,Katze,Teller

                            Maus
                            Katze
                            Teller

                            Maus_Katze
                            Maus_Maus
                            Maus_Teller

                            Teller_Teller
                            Teller_Katze
                            Teller_Maus

                            Katze_Katze
                            Katze_Maus
                            Katze_Teller

                            Maus_Maus_Maus
                            Maus_Maus_Teller
                            Maus_Maus_Katze
                            Maus_Teller_Teller
                            Maus_Teller_Katze
                            Maus_Teller_Maus
                            Maus_Katze_Maus
                            Maus_Katze_Teller
                            Maus_Katze_Katze

                            Katze_Katze.... usw...

                            Bei 4 wörtern ginge es bis zu W1_W2_W3_W4.
                            Zuletzt geändert von xManUx; 07.06.2005, 21:13.

                            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                            sondern mit den Augen das Manual zu lesen.

                            Kommentar


                            • #15
                              Mein Ziel ist es, wenn es 20 Wörter gäbe, dass quasi nahezu jede Wortkombination vorkommt.
                              ja, dann warte eben ab, wird schon noch jemand kommen, der dirs vorkaut ...
                              ich stehe im moment vor einer meiner eigenen Grenzen
                              Die Zeit hat ihre Kinder längst gefressen

                              Kommentar

                              Lädt...
                              X