kostenloser Webspace werbefrei: lima-city


4er Array Kombinationen aus n Elementen (Permutation)

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    spdata

    spdata hat kostenlosen Webspace.

    Hallo

    ich suche eine Möglichkeit und aus einem Array mit n Elementen
    alle unique Kombinationen zu finden, die aus jeweils 4 Elementen bestehen

    Beispiel:

    $startarray = array('Wert1', 'Wert2', 'Wert3', 'Wert4', 'Wert5', 'Wert6');


    Das Ergebnis soll sein: (Permutation)
    $ergebnis => Array
            (
                [0] => Array
                    (
                        [0] => Wert1
                        [1] => Wert2
                        [2] => Wert3
                        [3] => Wert4
                    )
                [1] => Array
                    (
                        [0] => Wert1
                        [1] => Wert2
                        [2] => Wert3
                        [3] => Wert5
                    )
                [2] => Array
                    (
                        [0] => Wert1
                        [1] => Wert2
                        [2] => Wert3
                        [3] => Wert6
                    )
                [3] => Array
                    (
                        [0] => Wert1
                        [1] => Wert2
                        [2] => Wert4
                        [3] => Wert5
                    )
                [4] => Array
                    (
                        [0] => Wert1
                        [1] => Wert3
                        [2] => Wert4
                        [3] => Wert5
                    )
                [5] => Array
                    (
                        [0] => Wert1
                        [1] => Wert2
                        [2] => Wert5
                        [3] => Wert6
                    )
                [6] => Array
                    (
                        [0] => Wert1
                        [1] => Wert3
                        [2] => Wert5
                        [3] => Wert6
                    )
                [7] => Array
                    (
                       ... usw ... 
                    )
            }


    so dass keine Kombination "doppelt" vorkommt
    also auch nicht in vertauschter Reihenfolge



    gibt es dafür vielleicht eine fertige PHP Funktion ?
    bzw. wie soll ich die Permutationen erstellen ?


  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. function perm($pool,$result=array()) {
       if(empty($pool)) {
        echo implode(' ',$result)."<br>";
       } else  {
         foreach($pool as $key => $value) {
           $neuerpool    = $pool;
           $neuerresult  = $result;
           $neuerresult[]= $value;
           unset($neuerpool[$key]);
           perm($neuerpool,$neuerresult);
         }
       }
    }
    
    // Testcode
    $feld = array(0,1,2,3,4,5,6);
    perm($feld);


    Nach zwei Minuten mit Hilfe von Google auf http://www.technischedaten.de/pmwiki2/pmwiki.php?n=Php.FakultaetPermutation gefunden, deshalb keine Garantie auf Funktionalität :wink:

    Beitrag zuletzt geändert: 2.2.2012 8:26:01 von alfr3d
  4. Autor dieses Themas

    spdata

    spdata hat kostenlosen Webspace.

    danke

    ja, solche und ähliche Beispiele hatte ich auchschon gefunden

    aber die machen alle "nur" Permutationen mit jeweils allen Elementen aus dem Array

    mein Problem, ist, das Ausgangs-Array hat n Elemente (hier im BSP 6)
    und es sollen aber Permutationen mit je nur 4 Elementen ermittelt werden

    das macht die Sache wohl etwas komplizierter


  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!