不重复取随机数

heyixiang 2004-11-05 10:23:25
ASP+VB如何做到不重复取随机数,但必须每个数都取到?

取随机数虽然不是问题,但我不知道如何实现后一步。
...全文
197 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
aoenzh 2004-11-05
  • 打赏
  • 举报
回复
我也同意放在数组中
up
mrshelly 2004-11-05
  • 打赏
  • 举报
回复
随机都会存在重复提取的问题。
所以。
要么,就不要随机。要么,就不要限制重复~~~~~~~~~~~
chenyuming2004 2004-11-05
  • 打赏
  • 举报
回复
randomize timer
把随机种子改变。
reky369 2004-11-05
  • 打赏
  • 举报
回复
用Randomize产生随机种子
david1981 2004-11-05
  • 打赏
  • 举报
回复
刷新后顺序一直不变,你试一下在执行这段代码之前加一句“Randomize”
heyixiang 2004-11-05
  • 打赏
  • 举报
回复
如果要重新排序,那怎么办?
heyixiang 2004-11-05
  • 打赏
  • 举报
回复
楼上这位解决了大部分,但我还想问,为什么我刷新,数字顺序一直不变?

如下

Dim rnddata(9),i,j
For i = 0 To 8
rnddata(i) = Int(Rnd() * 9) + 1
For j = 0 To i - 1
If (rnddata(i) = rnddata(j)) Then
i = i - 1
Exit For
End If
Next
Next
for i=0 to 8
response.Write(rnddata(i)&" ")
next
chenyuming2004 2004-11-05
  • 打赏
  • 举报
回复
Dim rnddata(16) As Integer, i As Integer, j As Integer
For i = 0 To 15
rnddata(i) = Int(Rnd() * 16) + 1
For j = 0 To i - 1
If (rnddata(i) = rnddata(j)) Then
i = i - 1
Exit For
End If
Next
Next
wsb1979 2004-11-05
  • 打赏
  • 举报
回复
可以先取随机,存入数组??然后每次对比看看是不是取过
heyixiang 2004-11-05
  • 打赏
  • 举报
回复
比如说从1到16这16个自然数,要求得到的结果也就是把这16个数的顺序打乱而已。
heyixiang 2004-11-05
  • 打赏
  • 举报
回复
我有解决方案了,现在结贴

下面代码是1-12自然数的随机排列.

<%
randomize
dim queryStr
queryStr=""
for n=1 to 12
dim addMun
addMun=int(Rnd()*12) + int(Rnd()*12)
if(addMun<=12 and addMun>0)then
if(queryStr="")then
queryStr=addMun
else
dim strTempArr
dim boolAdd
boolAdd=true
strTempArr=Split(queryStr,",")
For i=0 to UBound(strTempArr)
if(int(strTempArr(i))=addMun)then
boolAdd=false
exit for
end if
Next
if(boolAdd)then
queryStr=queryStr &","& addMun
else
n=n-1
end if
end if
else
n=n-1
end if
next
response.Write("<br>"& queryStr)
%>

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧