如何产生不重复的随机数?-fan0217
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


如何产生不重复的随机数?

发表时间:2008/9/6 8:08:59 评论(0) 浏览(11997)  评论 | 加入收藏 | 复制
   
摘 要:如何产生不重复的随机数?
正 文:

先创建个类模块:Random

类模块代码如下:
CODE:
Dim c As Collection
'初始化,定义产生随机数的最小值和最大值
Public Sub Init(min As Integer, max As Integer)
Set c = New Collection
Dim i As Integer
    For i = min To max
        c.Add i
    Next
End Sub
'产生不重复的随机数
Public Function RandomNext() As Integer
Dim i As Integer
Dim number As Integer, upperbound As Integer
    upperbound = c.Count
    If upperbound > 0 Then
        number = Int((upperbound) * Rnd + 1)
        RandomNext = CInt(c.Item(number))
        c.Remove (number)
    Else
        RandomNext = 0
    End If
End Function
Private Sub Class_Terminate()
    Set c = Nothing
End Sub
测试:
CODE:
Dim r As New Random
 
Sub Test() '请先运行Init
Dim i As Integer
    For i = 0 To 10
       Debug.Print r.RandomNext
    Next
End Sub
Sub Init()
    r.Init 1, 100
End Sub

这里使用集合来实现的,也可以用哈希表来做,道理差不多。哈希表需要自己定义类模块。


Access软件网交流QQ群(群号:198465573)
 
 相关文章
随机抽取数据库中的记录  【缪炜  2013/2/1】
利用随机函数做的儿童数学学习机  【在水一方  2013/3/18】
【Access示例】产生包含数字与字母(随机大小写)的随机编号  【缪炜  2013/4/12】
解决网友Excel生成随机数的问题  【杏林求真  2013/6/22】
【Access教程】Access数据库随机查询的SQL语句  【漏蛧尐魚℡  2013/7/21】
常见问答
技术分类
相关资源
文章搜索
关于作者

fan0217

文章分类

文章存档

友情链接