要随机生成不重复的随机数,我写的代码总是有重复的,请高手指点!

passme8 2008-04-09 03:28:36
我写了两段帐号自动生成的代码如下,可是会有很多重复的,如何才能让他不重复?麻烦帮我看一下如何修改?
<%
Function RndNumber(Min,Max)
Randomize
RndNumber=Int((Max - Min + 1) * Rnd() + Min)
End Function
for i=0 to 1000
for i2=0 to 0
num=RndNumber(100000000,999999999)
response.Write(num)
next
response.Write("<br>")
next
%>
还有一段是生成字母与数字混合的帐号,都是有相同帐号的
<%
Function Createpass(LengthNum)
Dim Ran,i
if Not IsNumeric(LengthNum) then LengthNum=8
Createpass=""
For i2=1 To LengthNum
Randomize
Ran = CInt(Rnd * 2)
Randomize
If Ran = 0 Then
Ran = CInt(Rnd * 25) + 97
Createpass =Createpass& UCase(Chr(Ran))
ElseIf Ran = 1 Then
Ran = CInt(Rnd * 9)
Createpass = Createpass & Ran
ElseIf Ran = 2 Then
Ran = CInt(Rnd * 25) + 97
Createpass =Createpass& Chr(Ran)
End If
Next
End Function
dim num
for i=0 to 100
for i2=0 to 0
num=Createpass(8)
response.Write(num)
next
response.Write("<br>")
next

%>
...全文
120 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
passme8 2008-04-13
分段生成如何保证不重复呢?
回复
文盲老顾 2008-04-10
分段生成,生成一部分就写次文件保存
然后 location.reload
打开原来的数据继续
回复
passme8 2008-04-09
生成一次就超时了
回复
文盲老顾 2008-04-09
难道天天生成么?
回复
passme8 2008-04-09
这个算法行是行,不过可能时间复杂度太高,我要生成10万个数就不行了
回复
文盲老顾 2008-04-09
dim vstr,rndNum
randomize

vstr = ","

do while split(vstr,",") < 100
rndNum = ","
do while instr(vstr,rndNum) > 0
rndNum = right("00000000" & (rnd() * 99999999),8)
loop
vstr = vstr & rndNum & ","
loop

a = split(vstr,",")
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-09 03:28
社区公告
暂无公告