我数学不太好,所以我被困在这里了。我需要得到n中X元素的可能排列(我认为,或者可能是排列?)的总数。
- 我想在N (
N>=X
) 中选择X个不同的元素 - 顺序很重要
- 每个元素不能在一个组合中出现超过一次
=>例如,给定$N = count(1,2,3,4,5,6,7,8,9)
, $X=6
元素的有效组合可以是:
- 1,4,5,3,2,8
- 4,2,1,9,7,3
我需要在PHP中使用什么公式来获得可能性的总数?
第一个元素有N个选择,第二个元素有N-1个选择(因为你已经选择了1个),第三个元素有N-2个选择,以此类推。你可以用阶乘来表示这个N!/(N-X-1) !参见https://en.wikipedia.org/wiki/Permutations
好的,我想我明白了。
$set = array(A,B,C,D,E,F,G);
$n = count($set);
$k = 6;
if($n>0)
{
if($k < $n)
{
$outcomes = gmp_fact($n) / gmp_fact($n-$k);
}
else
{
$outcomes = gmp_fact($n);
}
} else { $outcomes = 0; }
其中gmp_fact($n)是$n的PHP函数!(n !)也就是n x (n -1) x…x 1