您的位置:首页 > 编程语言 > ASP

求N个1-M之间的顺序随机数(vb 或 asp通用)

2008-01-23 11:38 92 查看
Function getRnd(i As Integer) As Integer '取1-i之间的随机数一个
Randomize
getRnd = Int(Rnd() * i + 1)
End Function

Function getAllRnd(Counter As Integer, jishu As Integer) As Integer()'取Counter个1-jishu之间的随机数
If (Counter > jishu) Then
MsgBox "数字个数不能大于基数"
Exit Function
End If
ReDim arr(Counter) As Integer
i = 0
Do While i < Counter
arr(i + 1) = getRnd(jishu)
found = False
For x = 1 To i
If arr(x) = arr(i + 1) Then
found = True
Exit For
End If
Next
If Not found Then
i = i + 1
End If
Loop

getAllRnd = arr
End Function

Sub OrderNumber(arr) '从小到大排序
For i = 1 To UBound(arr)
For j = i + 1 To UBound(arr)
If arr(i) > arr(j) Then
x = arr(i)
arr(i) = arr(j)
arr(j) = x
End If
Next
Next
End Sub

Private Sub Command1_Click()
arr = getAllRnd(5, 10) '取5个1-10之间的随机数
OrderNumber arr '排序
For i = 1 To UBound(arr)
Print arr(i)
Next
End Sub
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: