配列をとり、配列の配列を返す関数を書くのに苦労しています。これが組み合わされたもの、順列、または何か他のものとみなされるかどうかはわかりません。結果は、私が実際に実装したものと同じではありませんが、まったく同じではありません。PHPで変更されたコンビネーション/置換アルゴリズム
$sets = variable_length_permutations_with_duplicates(array('a', 'b'), 2);
このような配列の配列を返す必要があります:
のは、関数のシグネチャがあるとしましょう。そして、このコードは
function variable_length_permutations_with_duplicates($set_array, $max_subset_length)
のようなものです
[ ['a'], ['a','a'], ['a','b'], ['b], ['b','b'], ['b','a'], ]
値は何でもかまいませんので、配列を操作する必要があります。その例のような文字列である必要はありません。戻り配列内のサブセットは、特定の順序で表示する必要はありません。
これに使用できるPHP関数またはクラス、またはPHPに変換できる別の言語のリファレンス実装について知っていますか?
うわー、あなたは私の心を読んで、私が実際に必要なものを考え出し、およびコードを提供しました。よくやった。私が意味するのは、含まれている空のセットが良いことであることが判明したということです。このコードはユニットテストにも完全に対応しています。 –