編譯:xsfhlzh
函數:取NumMin和NumMax之間的n個隨機整數。
描述:取標誌的數組是Byte,每個位代表NumMin和NumMax之間某個數的狀態。
Dim arr()為整數
如果n & gtNumMax - NumMin + 1然後
ReDim arr(0)
arr(0) = 0
其他
ReDim arr(n)
Dim b()為字節
將m標註為整數
m = Int((NumMax - NumMin) / 8)
雷迪姆b(m)
入口標誌
將x標註為整數,y標註為整數
將z作為字節顯示
使不規則化
arr(0) = 1
對於i = 1到n
做
求X的位置,其中y表示X在數組的哪個字節,z表示X在哪個字節。
x = Int(Rnd *(NumMax-NumMin+1))+NumMin
y = x - NumMin
z = 2 ^ (y Mod 8)
y = y \ 8
b(y)和z時循環
b(y) = b(y)或z
arr(i) = x
找到未取的數,放入數組,設置標誌位。
接下來我
如果…就會結束
GetRndNotRepeat = arr
結束功能
示例:
a = GetRndNotRepeat(1,10000,2000)
如果a(0)則
對於i = 1到2000
調試。打印a(i)
接下來我
如果…就會結束