如何生成不重复的随机数
要从库中随机选取若干个符合条件的记录,现在我的方法如下。可选出的记录有重复的。请问该如何消除重复的随机数?
<% '生成随机数函数
Function gen_key(digits)
randomize
tempsd=int(uplimit() * rnd + 0)
gen_key=tempsd
End Function
function uplimit()
uplimit=Rs.RecordCount
end function
%>
<CENTER>
<TABLE BORDER=1 width="389">
<TR>
<% For i=0 to Rs.FIELDS.COUNT - 1%>
<td align="center" bgcolor="#e7f3ff" width="102"><b><% =Rs(i).name%></b> </td>
<% next %>
<% '循环写出每次所选人数
personcount=Request.Form("personcount")
For i=1 to personcount
ul=gen_key(3)
Rs.Move ul%>
<TR>
<TD width="81" align="center"><%=Rs("编号")%> </TD>
<TD width="81" align="center"><%=Rs("姓名")%> </TD>
<TD width="82" align="center"><%=Rs("城市")%> </TD>
<TD width="141" align="center"><%=Rs("电话")%> </TD>
</TR>
<%
Rs.MoveFirst
Next%>
问题点数:20、回复次数:3Top
1 楼sdly(飞狐)回复于 2002-07-31 08:28:44 得分 10
tempsd=int(uplimit() * rnd + 0)
不要取整,先乘10 或 100 再去整
tempsd=int(uplimit() * rnd *10)
Top
2 楼beyond_xiruo(CorruptionException)回复于 2002-07-31 08:32:18 得分 10
随机数本身很难重复的,不过如果你是在低位取整就把这个几率提高了,用楼上的方法好了!Top
3 楼celeron831()回复于 2002-07-31 08:37:50 得分 0
我要生成的随机数应该在1——符合条件的所有记录数之间,若*100还能在这个范围内吗?Top




