【发布时间】:2016-10-18 18:39:28
【问题描述】:
我很难编写一个接受数组并返回数组数组的函数。我不确定这是否会被视为组合、排列或其他东西。结果应该与我见过的其他一些排列组合算法类似,但并不完全相同。
假设函数签名是这样的
function variable_length_permutations_with_duplicates($set_array, $max_subset_length)
然后这段代码:
$sets = variable_length_permutations_with_duplicates(array('a', 'b'), 2);
应该像这样返回一个数组数组:
[
['a'],
['a','a'],
['a','b'],
['b],
['b','b'],
['b','a'],
]
它确实需要使用数组,因为值可以是任何东西,它们不一定是该示例中的字符串。返回数组中的子集不需要以任何特定顺序出现。
您知道我可以为此使用的任何 PHP 函数或类,或者我可以翻译成 PHP 的另一种语言的参考实现吗?
【问题讨论】:
标签: php arrays algorithm combinations permutation