Kan*_*ika 2 php permutation factorial
不知道怎么解释.但也许下面的例子会让你理解我的问题是什么.
示例:
我有一个包含3个元素的数组.
$elements = array( 'A', 'B', 'C' );
Run Code Online (Sandbox Code Playgroud)
排列将是3 in 3.所以结果是:
A-B-C ; A-C-B ; B-A-C ; B-C-A ; C-A-B; C-B-A
Run Code Online (Sandbox Code Playgroud)
我不希望任何排列2中3或1中3,只有3中3,如您在示例中所见.因此,如果我在一个数组中有4个元素,则排列是4中的4,依此类推......
(我认为排列的数量是3!= 1*2*3 = 6个排列,4!= 1*2*3*4 = 24个排列......这就是为什么我称之为因子的排列.)
如果还有其他问题和答案类似于我的问题,请告诉我
使用递归函数:
function permutations($elements) {
if(count($elements)<2) return $elements;
$newperms= array();
foreach($elements as $key=>$element) {
$newelements= $elements;
unset($newelements[$key]);
$perms= permutations($newelements);
foreach($perms as $perm) {
$newperms[]= $element."-".$perm;
}
}
return $newperms;
}
Run Code Online (Sandbox Code Playgroud)
没有测试,所以仍然有你的工作;-)