标题:请帮助,如何产生十个不重复的随机数???
只看楼主
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
得分:0 
以下是引用yjyjipc在2007-8-21 16:22:19的发言:
不好意思,看不懂...也试不出来..
前面那个算法是用数组保存已经产生的数的

这个算法思路是用字符串产生已经产生的数,可以用Instr方便地判断是否已生成

== 好像有点问题 我去修正一下
2007-08-21 18:17
Benison
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-23
得分:0 
Dim b As New Collection
Private Sub Command1_Click()
a = Int(Rnd * 10) + 1
For i = 1 To b.Count
If b.Item(i) = a Then
Command1_Click
Exit Sub
End If
Next i
Print a
b.Add (a)
End Sub

至于到了最后出错的,就自己重新设置吧

2007-08-21 18:26
skyshicn
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-10
得分:0 
我也看不懂
2007-08-21 18:28
cwjieNO1
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-8-20
得分:0 

Private Sub Command1_Click()

Dim t1, t2 As Integer
Dim t3 As String
Dim t(9) As String
For t1 = 0 To 9
Randomize
t2 = Int((100 - 1 + 1) * Rnd + 1)
List1.AddItem abc(CStr(t2), t)
Next t1

End Sub

Private Function abc(a As String, b() As String) As String
Dim i As Integer
Dim bol As Boolean
bol = False
For i = LBound(b) To UBound(b)
If b(i) = a Then
bol = True
Exit For
End If
Next
If bol = False Then
abc = a
Else
Randomize
abc = abc(CStr(Int((100 - 1 + 1) * Rnd + 1)), b)
End If
End Function

2007-08-21 20:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-164291-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019507 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved