-1

私は次の配列を持っています:

Array("1", "2", "3", "4");

そして、配列要素の順序付けされたすべての組み合わせを繰り返しなしで出力する関数が必要です。出力は

one
one two
one two three
one two three four
two
two three
two three four
three
three four
four

出力には以下を含めないでください。

one one
one two four
two one three
four two three

等々 ...

この種のアルゴリズムをすでに実装している人はいますか?

4

1 に答える 1

2

これは単純に 2 つのネストされたループになります。

オンラインデモ

function permutation(array $arr)
{
    while($ele=array_shift($arr))
    {
        $x=$ele;
        echo $x."\n";
        foreach($arr as $rest)
        {
            $x.=" $rest";
            echo $x."\n";
        }
    }
}
permutation(array("one","two","three","four"));
于 2013-09-25T09:28:56.910 に答える