VB里怎么生成0-13之间的随机数,为什么vb的随机数都是一样啊
网友回答
randomize'初始化随机数生成器,是生成的随机数不至于一直重复
int(rnd*14)'生成包括0和13的0-13之间的整数
若m>n 要生成包括m,n之间的随机整数,就这样写 int(rnd*(m-n+1)+n)
生成10-50的就是int(rnd*(50-10+1))+10
ps: rnd*50 生成的不是整数,而是0-49之间的双精度浮点数
要生成整数,还要用int函数,取其整数部分!!
网友回答
出现这种现象的原因是程序没有用不同的随机数种子来初始化随机数发生器。
如果使用Rnd()函数前没有用不同的随机数种子来初始化随机数发生器,那么同一个程序,在多次运行时,所产生的随机数序列是相同的。
只要使用Randomize语句后,就能保证每次运行所产生的随机数序列是不同的了。以下的程序可以保证每次运行所得的随机数是不同的:
Private Sub Command1_Click()
Dim x As Integer
Randomize
For i = 1 To 100
x = Rnd() * 101
Print Format(x, "
");
If i Mod 20 = 0 Then Print
Next i
Print
End Sub