编写过程序的人都知道,随机散列是我们经常要实现的问题。
什么是随机散列?比方说,现在有一个数列1、2、3、4、5、6。我希望得到一个随机的打乱顺序的数列,例如:2,5,6,3,4,1。这个新的数列就是原数列的随机散列。
实际情况中,我们经常需要给定一个范围,就能得到一个随机散列。比方说:给定[2,7],通过运算得到一个散列:6,4,5,7,2,3。
下面是实现随机散列的一个函数,用的是VB2005编写的。
'函数名:GetRndList
'作用:获得一个随机散列
'参数MinValue:随机散列的下限
'参数MaxValue:随机散列的上限
'参数Count:随机散列的个数
Public Function GetRndList( _
ByVal MinValue As Integer,_
ByVal MaxValue As Integer,_
ByVal Count As Integer
) As Integer()
If Count <= 0 OrElse Count > MaxValue - MinValue + 1 Then Return Nothing
Dim mBase() As Integer,mList() As Integer
Dim i As Integer,j As Integer,mR As New Random
ReDim mBase(Count - 1)
ReDim mList(MaxValue - MinValue)
For i = 0 To MaxValue - MinValue
mList(i) = i + MinValue
Next
For i = MaxValue - MinValue To MaxValue - MinValue - Count + 1 Step -1
j = mR.Next(i + 1)
Call SwapNumber(mList(i),mList(j))
Next
For i = 0 To Count - 1
mBase(i) = mList(MaxValue - MinValue - i)
Next
Return mBase
End Function
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。