我看到这个algorithm that will take numbers or words and find all possible combinationsPHP采取一切组合
而且我使用它,但它不会返回所有的“真实”的组合。
PHP:
<?php
require_once 'Math/Combinatorics.php';
$words = array('cat', 'dog', 'fish');
$combinatorics = new Math_Combinatorics;
foreach($combinatorics->permutations($words, 2) as $p) {
echo join(' ', $p), "\n";
}
?>
,并返回:
cat dog
dog cat
cat fish
fish cat
dog fish
fish dog
但这些并不都是真正的组合,所有真正的组合,包括这些太:
cat cat
dog dog
fish fish
而这正是我需要,获得所有真实组合的方法:
cat dog
dog cat
cat fish
fish cat
dog fish
fish dog
cat cat
dog dog
fish fish
你为什么不自己添加这些组合?看起来很简单,可以循环浏览数据并手动添加对。 – 2012-03-20 12:49:51
这与以前的问题不一样吗?你似乎对答案有所怀疑。为什么不在那里继续? – Nanne 2012-03-20 12:52:16
Math_Combinatorics - “返回给定集合和子集大小的所有组合和排列的包,保留关联数组。”这里的关键是“不重复”。 – strkol 2012-03-20 12:54:52