Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

求N选M组合数(无顺序)

时 间:2018-10-18 12:13:55
作 者:易勋   ID:35404  城市:上海
摘 要:如果要在N个数中取M个数作为一个组合,要怎么计算出有多少个组合?
正 文:

组合(combination),数学的重要概念之一。从n个不同元素中每次取出m个不同元素(0≤m≤n),不管其顺序合成一组,称为从n个元素中不重复地选取m个元素的一个组合。所有这样的组合的总数称为组合数,这个组合数的计算公式为


或者
n元集合A中不重复地抽取m个元素作成的一个组合实质上是A的一个m元子集合。如果给集A编序  成为一个序集,那么A中抽取m个元素的一个组合对应于数段  到序集A的一个确定的严格保序映射,组合数  的常用符号还有 [1]



组合总数(total number of combinations)是一个正整数,指从n个不同元素里每次取出0个,1个,2个,…,n个不同元素的所有组合数的总和,即

n元集合的组合总数是它的子集的个数。从n个不同元素中每次取出m个不同元素而形成的组合数  的性质是:

1、 
2、 

利用这两个性质,可化简组合数的计算及证明与组合数有关的问题。


根据组合的定义和公式,我们可以写一个函数来计算N选M的组合总数:

Private Function CombinationTotal(ByVal N As Long ,ByVal M As Long) As Long
    Dim i As Long
    Dim j As Long: j = 1
    Dim k As Long: k = 1
    
    For i = 0 To M - 1
        j = j * (N - i)
        k = k * (M - i)
    Next
    CombinationTotal = j / k
End Function


Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助