# 嗯，两秒搞定

Posted by 小吴 on October 28, 1998 at 15:54:19:

In Reply to: VB有无 "产生不重复乱数" 之功能函数? posted by 小Sam on October 28, 1998 at 10:24:22:

VB 去那里生这种函式给你用呀？这个功能用点小技巧不过出来了吗？
下面这个范例在 PII-266 的电脑中约花 1.2 秒。

Dim colDataPool As New Collection
Dim lngNum As Long
Dim vntNum As Variant
Dim i As Integer

On Error Resume Next
For i = 1 To 10000
Do
Err.Clear
lngNum = Rnd * 10000000
If lngNum = 0 Then lngNum = 1
colDataPool.Add lngNum, CStr(lngNum)
Loop While Err
Next i
On Error GoTo 0

For Each vntNum In colDataPool
Debug.Print vntNum
Next vntNum

Follow Ups:

- 简单问题: 如果有20个数字,1 To 20,如何可以Random地出现不同次序? 匡 14:29:48 11/02/98 (0)
- 那可否中途停止程式并储存进度呢？又,理论上数字范围极限应为何？ 小Sam 08:32:26 10/30/98 (0)
- Re: 跟小吴讨论一下.. 小马 18:53:58 10/29/98 (1)
  - 当然不会 小吴 07:33:08 10/30/98 (0)
- 很佩服你会想到这种方法！ Cary 23:20:17 10/28/98 (0)
- 感激不尽五体投地...能否再请教一题脑力激荡--乐透彩券... 小Sam 19:19:11 10/28/98 (0)