当前位置:编程学习 > VB >>

遍历排列的实现——VB2005

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

  代码赋予其后,用的是VB2005

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

  类clsPermutation:

  函数:GetPermutation

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

    参数: Lower,排列中的下限

               Upper,排列中的上限

               Count,排列中的元素的个数

               Index,该排列的标号

    示例: tI=GetPermutation(1,8,4,23)

                  返回一个从1到8中选4个数的一个排列,标号为23

  函数:GetPermutationRandom

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

       参数: Lower,排列中的下限

              Upper,排列中的上限

              Count,排列中的元素的个数

         示例: tI=GetPermutation(1,8,4)

                  返回一个从1到8中选4个数的一个排列

  函数:Factorial

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

         参数: N,指定参数

         示例: tI=Fratorial(4)

                  返回4的阶乘,为24

  函数:P

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

         参数: M,指定参数上标;N,指定参数下标

         示例: tI=P(2,6)

                  计算P(2,6)的值,为30

 

  类clsCombination:

  函数:GetCombination

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

         参数: Lower,排列中的下限

                  Upper,排列中的上限

                  Count,排列中的元素的个数

                  Index,该排列的标号

         示例: tI=GetCombination(1,8,4,23)

                  返回一个从1到8中选4个数的一个组合,标号为23

  函数:GetCombinationRandom

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

         参数: Lower,排列中的下限

                  Upper,排列中的上限

                  Count,排列中的元素的个数

         示例: tI=GetCombination(1,8,4)

                  返回一个从1到8中选4个数的一个组合

  函数:C

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

         参数: M,指定参数上标;N,指定参数下标

         示例: tI=C(2,6)

                  计算C(2,6)的值,为15

1 Public Class clsPermutation  
2   Private Shared mList() As Integer 
3  
4    Public Shared Function GetPermutationRandom(ByVal Lower As Integer, _

                            ByVal Upper As Integer, _
                            ByVal Count As Integer) As Integer()  
5     If Count > Upper - Lower + 1 Then Return Nothing 
6     If Count <= 0 Then Return Nothing
补充:软件开发 , Vb ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,