Dim s(1 To 100) As Integer Private Sub Command1_Click() Dim i As Integer, j As Integer For i = 1 To 100 again: Randomize 5 s(i) = Int(100 * Rnd + 1) For j = 1 To (i - 1) If s(j) = s(i) Then GoTo again End If Next Debug.Print s(i) Next End Sub 我写出来了,大家看看对不对,从200个数中,提取随机数,而且没有重复的 ================================================================ 我爱学习故我在! 我爱学习故我在! 我爱学习故我在!
然后根据ID从题库中找相应的题目
也可以自定义一个随机函数那很麻烦的
简单点说:我从1000数中,如何取出100个随机且无重复的数据,给出算法
我将追加50分
每一次使用Rnd获得随即数,从库中提一个就把标志设为1
Dim j(107) As Single '设置一个数组来确定牌发过几次,从而避免发牌重复
Dim i, rndvalue As Integer
'设置所有牌的背景图案
cardfilename = Array(123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 179, 180, 181)
For i = 0 To 107
again: Randomize Timer '初始化随机种子
rndvalue = Int(Rnd() * 54)
If j(rndvalue) = 0 Or j(rndvalue) = 1 Then
'设置所有牌的正面图案
Set playercard(i).card_front_picture = LoadResPicture(cardfilename(rndvalue), vbResBitmap)
image1(i).Picture = playercard(i).card_back_picture
Else
GoTo again
End If
Next i
End Sub如果有问题可以写信给我。[email protected]
你的j(rndvalue)=?我怎么知道啊,你上面好象没有给它值啊。从程序看
j(rndvalue)应该都是0
================================================================
我爱学习故我在!
我爱学习故我在!
我爱学习故我在!
================================================================
我爱学习故我在!
我爱学习故我在!
我爱学习故我在!
moon15.6to23.com
================================================================
我爱学习故我在!
我爱学习故我在!
我爱学习故我在!
Private Sub Command1_Click()
Dim i As Integer, j As Integer
For i = 1 To 100
again: Randomize 5
s(i) = Int(100 * Rnd + 1)
For j = 1 To (i - 1)
If s(j) = s(i) Then
GoTo again
End If
Next
Debug.Print s(i)
Next
End Sub
我写出来了,大家看看对不对,从200个数中,提取随机数,而且没有重复的
================================================================
我爱学习故我在!
我爱学习故我在!
我爱学习故我在!