感谢您使用微软产品。函数Rnd根据初始的seed产生一系列随机数,相同的seed将产生相同的数,因此需要在调用Rnd前用Randomize初始化seed。如下例将产生5个随机数。Private Sub Command1_Click() Dim rndnum(5) Dim i Randomize For i = 1 To 5 rndnum(i) = Rnd() MsgBox rndnum(i) Next i End Sub 详细信息请参考以下链接: Rnd Funtion http://msdn.microsoft.com/library/en-us/vbenlr98/html/vafctRnd.asp Randomize Statement http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/vastmrandomize.asp - 微软全球技术中心 VB技术支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款 (http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。 为了为您创建更好的讨论环境,请参加我们的用户满意度调查 (http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
LG = Int(Rnd * time)
Randomize'让程序"真正"随机rnd'要多少就写多少吧,自己用个for...next...
Private Sub Command1_Click() Dim rndnum(5) Dim i Randomize For i = 1 To 5 rndnum(i) = Rnd() MsgBox rndnum(i) Next i End Sub 在实际使用的时候也会有重复的
Private Sub Command1_Click() Dim i As Integer Dim k As Integer Dim c(5) As Integer For i = 1 To 5 '5个不相同的2位数 Randomize Timer c(i) = Int(Rnd * 90) + 10 k = i For j = 1 To k - 1 If c(j) = c(k) Then i = i - 1 '如果相同就不要 Next j Next i For i = 1 To 5 Print c(i); Next i Print End Sub
randamize(Time) dim x(5) as long for i=1 to 5 x(i)=int(rnd*?) next i 因为产生的随机数介于0-1之间,所以rnd*?,?就是你要的范围
这样的话,肯定随机了,因为time一直在变嘛
Randomize Dim a(5) as bool,x(5) as integer,j as integer For i = 1 to 5 j=int(rnd(1)*5)
Randomize Dim a(5) as bool,x(5) as integer,j as integer, i as integer for i = 1 to 5 a(i)=false next i For i = 1 to 5 Redo: j=int(rnd(1)*5) if a(i)=true then goto redo a(i)=true next i
感谢您使用微软产品。函数Rnd根据初始的seed产生一系列随机数,相同的seed将产生相同的数,因此需要在调用Rnd前用Randomize初始化seed。如下例将产生5个随机数。Private Sub Command1_Click()
Dim rndnum(5)
Dim i
Randomize
For i = 1 To 5
rndnum(i) = Rnd()
MsgBox rndnum(i)
Next i
End Sub
详细信息请参考以下链接:
Rnd Funtion
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vafctRnd.asp Randomize Statement
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/vastmrandomize.asp
- 微软全球技术中心 VB技术支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查
(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
Randomize'让程序"真正"随机rnd'要多少就写多少吧,自己用个for...next...
Dim rndnum(5)
Dim i
Randomize
For i = 1 To 5
rndnum(i) = Rnd()
MsgBox rndnum(i)
Next i
End Sub
在实际使用的时候也会有重复的
Dim i As Integer
Dim k As Integer
Dim c(5) As Integer
For i = 1 To 5 '5个不相同的2位数
Randomize Timer
c(i) = Int(Rnd * 90) + 10
k = i
For j = 1 To k - 1
If c(j) = c(k) Then i = i - 1 '如果相同就不要
Next j
Next i
For i = 1 To 5
Print c(i);
Next i
Print
End Sub
选声明一个字符串变量,给它赋值 "0123456789"
产生一个1到10的随机数,按随机数的值从该字符串中用mid截取一个字符,再转换成数字,然后将字符串变量中截取的字符删除。
第二次产生一个1到9的随机数来截取......如果是n位数,可以先产生一个n-1位数的随机数,再用上面的方法产生一个随机数,再将两个数字并起来就行了。。
dim x(5) as long
for i=1 to 5
x(i)=int(rnd*?)
next i
因为产生的随机数介于0-1之间,所以rnd*?,?就是你要的范围
这样的话,肯定随机了,因为time一直在变嘛
Dim a(5) as bool,x(5) as integer,j as integer
For i = 1 to 5
j=int(rnd(1)*5)
Dim a(5) as bool,x(5) as integer,j as integer, i as integer
for i = 1 to 5
a(i)=false
next i
For i = 1 to 5
Redo:
j=int(rnd(1)*5)
if a(i)=true then goto redo
a(i)=true
next i