Dim i As Integer
For i = 1 To 1000
Randomize
ITEM(i) = Int(Rnd * 1000) + 1
List1.AddItem ITEM(i)
Next
End Sub
上面代码产生的随机数会重复,
为什么用了Randomize还会重复?
...全文
68028打赏收藏
为什么不能用FOR循环产生不同的随机数?
Private Sub Command1_Click() Dim i As Integer For i = 1 To 1000 Randomize ITEM(i) = Int(Rnd * 1000) + 1 List1.AddItem ITEM(i) Next End Sub 上面代码产生的随机数会重复, 为什么用了Randomize还会重复?
上面代码产生的随机数会重复,
为什么用了Randomize还会重复?
====================
你想要的是不是乱序排列1~1000这一千个数?如果是则不应该用你的方法。。。一个简单例子:
Private Sub Command1_Click()
Randomize
Dim i As Integer
Dim k As Integer
Dim temp As Integer
Dim a(1 To 1000) As Integer
For i = 1 To 1000
a(i) = i
Next
For j = 1 To 1000
k = Int(Rnd * 1000) + 1
temp = a(j)
a(j) = a(k)
a(k) = temp
Next
也可以用集合实现:
Private Sub Command1_Click()
Dim temp As New Collection, i As Long, tempi As Long
For i = 1 To 1000
temp.Add i
Next
Randomize
For i = 1 To 1000
tempi = Int(Rnd * temp.Count) + 1
List1.AddItem temp(tempi)
temp.Remove tempi
Next
Set temp = Nothing
End Sub
Private Sub Command1_Click()
Dim a(1000) As Integer, i As Integer, temp As Integer
For i = 1 To 1000
a(i) = i
Next
For i = 1000 To 1 Step -1
Randomize
temp = Int(Rnd * i) + 1
List1.AddItem a(temp)
a(temp) = a(i)
Next
End Sub
For tIndex = LBound(tLongs) To UBound(tLongs)
Text1.Text = tLongs(tIndex) & " " & Text1.Text
Next
End Sub
Function LongsSeries(ByVal pLower As Long, ByVal pUpper As Long, Optional ByVal pGetCount As Long = 0) As Long()
'pLower 下限
'pUpper 上限
'pGetCount 获取数字的数量(默认为0,取全部数列)
Dim tOutLongs() As Long
Dim tOutLongs_Readys() As Boolean
Private Sub command1_click1()
dim i as integer, t as integer, k as integer
dim Item(1 to 1000) as integer
dim ItemReady(1 to 1000) as Boolean
for i=1 to 100 '假设你只取100个数字,如果是1000个则写为1000。
t=int(rnd*1000)
if Not ItemReady(t) Then Item(t)=t : ItemReady(t)=true
if Not ItemReady(i) Then Item(i)=i + 1 : ItemReady(i)=true
k=Item(i)
Item(i)=Item(t)
Item(j)=k
next
End Sub
Private Sub command1_click1()
dim i as integer, t as integer, k as integer
dim Item(1 to 1000) as integer
for i=1 to 1000
Item(i)=i
next
for i=1 to 1000
t=int(rnd*1000)+1
k=Item(i)
Item(i)=Item(t)
Item(j)=k
next
End Sub