如何在VB中实现永不重复的随机数
答案:2 悬赏:40 手机版
解决时间 2021-04-06 08:10
- 提问者网友:两耳就是菩提
- 2021-04-06 05:18
如何在VB中实现永不重复的随机数
最佳答案
- 五星知识达人网友:舍身薄凉客
- 2021-04-06 06:42
理论上是可以无穷大,但是受数据类型结构限制。例如单精度类型的长度范围在3.402823E+38,如果抛开电脑数据结构占位精度和CPU消耗,理论上总有穷举完的时候。
但通常我们不可能把它真正的穷举完。你在窗体内创建一个List1和一个Command1。
在窗体模块中粘贴如下代码:
Private Switch As Boolean
Private Sub Command1_Click()
If Switch Then
Form_Load
Else
Command1.Caption = "停止(&P)"
Switch = True: Call GetRands
End If
End Sub
Private Sub Form_Load()
Randomize Timer
With Me
.Width = 4600
.Height = 5000
.Caption = "随机数发生器"
End With
List1.Move 120, 120, 2415, 4200
Command1.Move 2640, 120, 1575, 600
Command1.Caption = "开始(&S)"
Switch = False
End Sub
Sub GetRands()
Dim d As Object, v!
Set d = CreateObject("scripting.dictionary")
Do
v = Rnd
If d.Exists(v) = False Then
d.Add v, v
List1.AddItem v
End If
Me.Caption = "正在生产随机数:" & IIf(v Mod 2 = 0, ".", "..")
DoEvents
Loop Until Switch = False
End Sub
但通常我们不可能把它真正的穷举完。你在窗体内创建一个List1和一个Command1。
在窗体模块中粘贴如下代码:
Private Switch As Boolean
Private Sub Command1_Click()
If Switch Then
Form_Load
Else
Command1.Caption = "停止(&P)"
Switch = True: Call GetRands
End If
End Sub
Private Sub Form_Load()
Randomize Timer
With Me
.Width = 4600
.Height = 5000
.Caption = "随机数发生器"
End With
List1.Move 120, 120, 2415, 4200
Command1.Move 2640, 120, 1575, 600
Command1.Caption = "开始(&S)"
Switch = False
End Sub
Sub GetRands()
Dim d As Object, v!
Set d = CreateObject("scripting.dictionary")
Do
v = Rnd
If d.Exists(v) = False Then
d.Add v, v
List1.AddItem v
End If
Me.Caption = "正在生产随机数:" & IIf(v Mod 2 = 0, ".", "..")
DoEvents
Loop Until Switch = False
End Sub
全部回答
- 1楼网友:等灯
- 2021-04-06 07:53
这个怎么说呢
10个数里 随机取11次 总会有重复的
10个数里 随机取11次 总会有重复的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯