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

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

时 间:2008-09-06 08:08:59
作 者:fan0217   ID:3202  城市:绵阳
摘 要:如何产生不重复的随机数?
正 文:

先创建个类模块: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交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

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