我曾经写过一篇用递归和循环来实现排列算法的文章。那篇文章的代码比较复杂,其实我们仅仅是想知道排列有几种结果的话,用数学公式的原理来实现会简单许多。
数学公式如下:
其中阶乘可以用递归来实现,整体代码如下:
function A(n, m) {
return f(n) / f(n - m);
}
function f(num) {
if (num <= 1) {
return 1;
}
return num * f(num - 1);
}
我曾经写过一篇用递归和循环来实现排列算法的文章。那篇文章的代码比较复杂,其实我们仅仅是想知道排列有几种结果的话,用数学公式的原理来实现会简单许多。
数学公式如下:
其中阶乘可以用递归来实现,整体代码如下:
function A(n, m) {
return f(n) / f(n - m);
}
function f(num) {
if (num <= 1) {
return 1;
}
return num * f(num - 1);
}