我曾经写过一篇用递归和循环来实现排列算法的文章。那篇文章的代码比较复杂,其实我们仅仅是想知道排列有几种结果的话,用数学公式的原理来实现会简单许多。
数学公式如下:
其中阶乘可以用递归来实现,整体代码如下:
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); }