VB中的乱序函数

本文介绍了一个VB程序,用于从指定范围内随机选择特定数量的整数,并将这些数存放在数组的开头部分。通过示例展示了如何使用该程序来生成随机数序列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将C++的函数稍改了一下,以适合在VB里用。

 

'从1-max中随机选择n个,放在数组arrT()最前面
Public Sub RndSel(max As Integer, ByVal N As Integer, arrT() As Integer)
    
Dim p As Integer
    
Dim i As Integer
    
Dim tmp As Integer
    
    
If N > max Then N = max
    
ReDim arrT(max - 1)
    
For i = 0 To max - 1
        arrT(i) 
= i + 1
    
Next
    
For i = 0 To N - 1
        p 
= Int(GetRnd(CSng(i), CSng(max)))
        tmp 
= arrT(p)
        arrT(p) 
= arrT(i)
        arrT(i) 
= tmp
    
Next
End Sub

'生成区间内的随机值,小数点后4位
Public Function GetRnd(min As Single, max As SingleAs Single
    Static blnInit 
As Boolean
    
If Not blnInit Then
        
Randomize Timer
        blnInit 
= True
    
End If
    GetRnd 
= Rnd * (max - min) + min
End Function

 

用RndSel生成的一串随机数,放在一个数组里,最前面N个是已经随机抽取的。

举个例子:

 

    Dim arr() As Integer
    
Dim i As Integer
    
Dim j As Integer
    
Dim s As String
    
        Text1.Text 
= ""
    
For j = 1 To 20
        
Call RndSel(377, arr())
        s 
= ""
        
For i = 0 To 6
            
If s <> "" Then s = s & ","
            s 
= s & Format(CStr(arr(i)), "@@")
        
Next
        Text1.Text 
= Text1.Text & vbCrLf & s
    
Next

Call RndSel(37, 7, arr()) 这句就是从1-37中选择7个,放到arr()中,arr(0)-arr(6)就是这7个数

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值