Cli*_*ote 3 php algorithm powerset
如果我有3个字符串,例如:
"abc def xyz"
Run Code Online (Sandbox Code Playgroud)
我想通过重新排列这些字符串找到我可以生成的最大组合数,例如:
等计算这个的公式/算法是什么?
这不是一种组合,而是排列.算法是n!其中n是元素的数量.
为什么?
因为你有3个值放在三个地方,所以对于第一个地方你有三个选项,第二个只有两个(因为你已经宫殿第一个字符串)和最后你只有一个选项.
3*2*1 = 3!= 6
但是,如果你可以重复这些选择而不是重复排列
所以对于第一名你可以选择3个字符串,第二个也可以选择一个
3*3*3 = 3 ^ 3 = 27
n ^ k - 其中n是字符串数,k是"位置"的数量
代码算法如下所示:
function fact($n)
{
if ($n == 0)
{
return 1;
}
else
{
return $n * fact($n - 1);
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个递归的例子
| 归档时间: |
|
| 查看次数: |
24664 次 |
| 最近记录: |