排列组合算法(js实现)
排列组合是数学中的一个基本概念,主要有两种形式:排列和组合。
- 排列:排列是指将n个不同的元素,每个元素都有可能出现在每一个位置上。所以,对于n个元素的排列,总共有n!种可能。
- 组合:组合是指从n个不同的元素中,选取r个元素进行组合,这里不考虑顺序,所以,对于n个元素的组合,总共有C(n, r) = n! / (r! * (n-r)!)种可能。
以下是使用JavaScript实现排列和组合算法的示例代码:
- 排列算法:
function factorial(n) {
if (n === 0 || n === 1) {
return 1;
}
return n * factorial(n - 1);
}
function permutation(n, k) {
return factorial(n) / factorial(n - k);
}
console.log(permutation(5, 3)); // 输出: 60
在上述代码中,factorial
函数用于计算一个数的阶乘,permutation
函数用于计算排列数。
- 组合算法:
function factorial(n) {
if (n === 0 || n === 1) {
return 1;
}
return n * factorial(n - 1);
}
function combination(n, k) {
return factorial(n) / (factorial(k) * factorial(n - k));
}
console.log(combination(5, 3)); // 输出: 10
在上述代码中,combination
函数用于计算组合数。
以上就是使用JavaScript实现排列和组合算法的简单示例。
评论已关闭