js实现重复的排列组合
2015-01-01 15:38
253 查看
function rp(arr, count) { var result = []; var cal = function(r, a, c) { if (c == 0) { result.push(r); return; } for (var i = 0; i < a.length; i++) { cal(r.concat(a[i]), a.slice(0, i + 1).concat(a.slice(i + 1)), c - 1); } }; cal([], arr, count); return result; } function run() { var r = rp([1, 2, 3, 4, 5], 3); console.debug(r); console.debug(r.length); }
结果:
[[1, 1, 1], [1, 1, 2], [1, 1, 3], [1, 1, 4], [1, 1, 5], [1, 2, 1], [1, 2, 2], [1, 2, 3], [1, 2, 4], [1, 2, 5], [1, 3, 1], [1, 3, 2], [1, 3, 3], [1, 3, 4], [1, 3, 5], [1, 4, 1], [1, 4, 2], [1, 4, 3], [1, 4, 4], [1, 4, 5], [1, 5, 1], [1, 5, 2], [1, 5, 3],
[1, 5, 4], [1, 5, 5], [2, 1, 1], [2, 1, 2], [2, 1, 3], [2, 1, 4], [2, 1, 5], [2, 2, 1], [2, 2, 2], [2, 2, 3], [2, 2, 4], [2, 2, 5], [2, 3, 1], [2, 3, 2], [2, 3, 3], [2, 3, 4], [2, 3, 5], [2, 4, 1], [2, 4, 2], [2, 4, 3], [2, 4, 4], [2, 4, 5], [2, 5, 1], [2,
5, 2], [2, 5, 3], [2, 5, 4], [2, 5, 5], [3, 1, 1], [3, 1, 2], [3, 1, 3], [3, 1, 4], [3, 1, 5], [3, 2, 1], [3, 2, 2], [3, 2, 3], [3, 2, 4], [3, 2, 5], [3, 3, 1], [3, 3, 2], [3, 3, 3], [3, 3, 4], [3, 3, 5], [3, 4, 1], [3, 4, 2], [3, 4, 3], [3, 4, 4], [3, 4,
5], [3, 5, 1], [3, 5, 2], [3, 5, 3], [3, 5, 4], [3, 5, 5], [4, 1, 1], [4, 1, 2], [4, 1, 3], [4, 1, 4], [4, 1, 5], [4, 2, 1], [4, 2, 2], [4, 2, 3], [4, 2, 4], [4, 2, 5], [4, 3, 1], [4, 3, 2], [4, 3, 3], [4, 3, 4], [4, 3, 5], [4, 4, 1], [4, 4, 2], [4, 4, 3],
[4, 4, 4], [4, 4, 5], [4, 5, 1], [4, 5, 2], [4, 5, 3], [4, 5, 4], [4, 5, 5], [5, 1, 1], [5, 1, 2], [5, 1, 3], [5, 1, 4], [5, 1, 5], [5, 2, 1], [5, 2, 2], [5, 2, 3], [5, 2, 4], [5, 2, 5], [5, 3, 1], [5, 3, 2], [5, 3, 3], [5, 3, 4], [5, 3, 5], [5, 4, 1], [5,
4, 2], [5, 4, 3], [5, 4, 4], [5, 4, 5], [5, 5, 1], [5, 5, 2], [5, 5, 3], [5, 5, 4], [5, 5, 5]]
相关文章推荐
- js实现简单排列组合的方法
- JAVA实现组合、排列、重复排列(多层循环)
- 用js实现排列组合
- js实现全排列组合算法
- 剑指Offer28字符串的排列(递归和非递归实现)扩展有重复元素的排列,字符串的组合种类
- JS实现的全排列组合算法示例
- 【JS】用js实现二维数组里面的元素排列组合一个小demo
- js实现简单排列组合的方法
- js 实现排列组合
- 12个字母任选5个进行排列组合,不可重复 javascript 递归实现
- C#实现排列组合算法
- 一段实现除去字符串中重复的js代码
- C#实现排列组合算法
- 使用定时器实现Js的延期执行或重复执行setTimeout,setInterval
- 编程实现1到N个数的所有排列组合
- 排列组合非递归算法的实现
- 一段实现除去字符串中重复的js代码
- css+js实现select列表横向排列效果代码
- 【JavaScript】使用定时器实现Js的延期执行或重复执行setTimeout,setInterval
- 一个实现排列和组合的JavaBean