遍历排列的实现——VB2005

前两日,写了一篇“遍历组合的实现——VB2005。在数学分支里,排列与组合是不分家的。于是,动手写下本文。在上一文中,采用了递归调用,虽然便于理解,但是算法的效率上打个折扣。本文一并重写,改为循环调用

代码赋予其后,用的是VB2005

两个类,一个clsPermutation,用来计算排列的;一个clsCombination,用来计算组合的。下面,把各个函数说明一下。

clsPermutation

函数GetPermutation

获得指定标号的排列,返回值是一个数组

参数: Lower,排列中的下限

Upper,排列中的上限

Count,排列中的元素的个数

Index,该排列的标号

示例: tI=GetPermutation18423

返回一个18中选4个数的一个排列,标号为23

函数GetPermutationRandom

获得随机的排列,返回值是一个数组

参数: Lower,排列中的下限

Upper,排列中的上限

Count,排列中的元素的个数

示例: tI=GetPermutation184

返回一个18中选4个数的一个排列

函数Factorial

获得指定参数的阶乘,返回值是一个整数

参数: N,指定参数

示例: tI=Fratorial4

返回4的阶乘,为24

函数P

获得指定参数的排列数,返回值是一个整数

参数: M,指定参数上标

N,指定参数下标

示例: tI=P26

计算P26)的值,为30

clsCombination

函数GetCombination

获得指定标号的排列,返回值是一个数组

参数: Lower,排列中的下限

Upper,排列中的上限

Count,排列中的元素的个数

Index,该排列的标号

示例: tI=GetCombination18423

返回一个18中选4个数的一个组合,标号为23

函数GetCombinationRandom

获得随机的排列,返回值是一个数组

参数: Lower,排列中的下限

Upper,排列中的上限

Count,排列中的元素的个数

示例: tI=GetCombination184

返回一个18中选4个数的一个组合

函数C

获得指定参数的排列数,返回值是一个整数

参数: M,指定参数上标

N,指定参数下标

示例: tI=C26

计算C26)的值,为15

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...