美文网首页
m选n组合

m选n组合

作者: JacobMa1996 | 来源:发表于2018-04-18 20:17 被阅读0次

最近需求,要写排列组合算法,首先第一步是m个元素中选n个元素进行组合,也就是数学中C(m,n);方法有多种。

递归
let arr = [1,2,3]
function combination(arr, nLen, m, singleArr, list) {
    if (m === 0) {
        let arrCopy = []
        for (let j = 0; j < singleArr.length; j++) {
            arrCopy[j] = singleArr[j]
        }
        list.push(arrCopy)
        return
    }

    for (let i = nLen; i >= m; --i) {
        singleArr[m - 1] = arr[i - 1]
        combination(arr, i - 1, m - 1, singleArr, list)
    }
}

function getArrlist (arr, num) {
    let singleArr = []
    let list = []
    combination(arr, arr.length, num, singleArr, list)
    return list
}

let list = getArrlist(arr, 2) // [2,3] [1,3] [1,2]
01法

相关文章

  • m选n组合

    最近需求,要写排列组合算法,首先第一步是m个元素中选n个元素进行组合,也就是数学中C(m,n);方法有多种。 递归...

  • 子集、组合、排列算法

    列出所有 1...n 的子集 输出 从 1...n 选 m 个数,列出所有组合 输出 从 1...n 选 m 个数...

  • 笔试刷题-美团2018-07-31

    题目描述: 思路如下: dp[m][n]表示用前m中纸币可以组合出n元的组合个数dp[m][n]=dp[m-1][...

  • 概率论/线代/离散数学/统计学的一些基础知识

    零、一些基础 阶乘: 0!=1阶乘公式 组合数公式 :这是组合不是排列啊,C(n,m)=C(m-n,m)=C...

  • Java组合算法(m个:n选1 组合)

    转载:http://blog.csdn.net/xht555/article/details/43278807(详...

  • 组合数算法

    一、概念 什么是组合数呢? 从m个不同元素中取出n(n≤m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元...

  • 排列组合--原理及实现

    1. 定义: 组合数:从m个不同元素中任取n(n<=m)个元素拼成一组,叫做从m中取n个元素的组合。能够取的所有可...

  • R统计:排列组合

    导读 排列数:从n个不同元素中取出m(m≤n)个元素的所有不同排列的个数。组合数:从n个不同元素中取出m(m≤n)...

  • python实现leetcode之90. 子集 II

    解题思路 遇事不决先排序 定义一个组合N选k的函数然后正对整个数组,从N选0,N选1,...N选k,一直到N选N然...

  • 2019-04-02 牛客网迅雷笔试题 整数求和

    给定整数n,取若干个1到n的整数可求和等于整数m,编程求出所有组合的个数。比如当n=6,m=8时,有四种组合:[2...

网友评论

      本文标题:m选n组合

      本文链接:https://www.haomeiwen.com/subject/ptebkftx.html