利用VB产生随机数的一个例子:
Private Sub Command1_Click()
Dim i As Integer '作为计数器
For i = 1 To 20
Randomize
a(i) = (1000 - 100 + 1) * Rnd + 100 '产生随机数
Next i
Dim str1 As String
Dim m As Integer
For m = 1 To 20
str1 = str1 + Str(a(m))
Next m
Text1.Text = str1
End Sub
Private Sub Command2_Click()
Dim i As Integer
For i = 1 To 20
If a(i) Mod 2 = 0 Then
a(i) = 0
End If
Next i
'对产生的随机数进行排序
Dim j As Integer,k As Integer
Dim temp As Integer
For j = 1 To 20
For k = 1 To 20 - j
If a(k) > a(k + 1) Then
temp = a(k)
a(k) = a(k + 1)
a(k + 1) = temp
End If
Next k
Next j
Dim str2 As String
For i = 1 To 20
If a(i) = 0 Then
GoTo Next1
Else
str2 = str2 + Str(a(i))
End If
Next1:
Next i
Text2.Text = str2
End Sub
增加一个模块:Global a(1 To 20) As Integer ,全局变量
效果:
关于随机数:
1.首先是在VB下产生随机数,一般是以Value=int((upper- lower+1)*Rnd+lower),其中upper是上限,lower是下限,这样其实是伪随机数,既会产生相同的数据,再加上Randomize 语句既可以产生真正的随机数。然而这个方法并非是最好的,在调试的时候产生的随机数没有变化。
2.Randomize
a(i) = (1000 - 100 + 1) * Rnd + 100 '产生随机数
使用这个方法即可产生真正的随机数,并且保证在调试的时候不产生一样的数据!
3.在C++里面则使用这个函数产生随机数:value=rand()%100;产生0到100的数据,不包括 100,这个也不会达到理想状态,我们需要增加一个种子,srand(time(0));这样才不会每次都产生一样的数据,(包含#include <ctime>头文件)。
4.关于time_t time(0):time_t被定义为长整型,它返回从1970年1月1日零时零分零秒到目前为止所经过的时间,单位为秒。