ASP随机数,数组的问题

实现一个功能,求出100-200之间N个不重复的随机数。具体是在第一个页面中输入一个整数X,进行提交,然后在第二个页面中显示出这X个不重复的随机数。至于第一个页面很简单,... 实现一个功能,求出100-200之间N个不重复的随机数。
具体是在第一个页面中输入一个整数X,进行提交,然后在第二个页面中显示出这X个不重复的随机数。
至于第一个页面很简单,输入的数字name="num"。第二个页面如何用数组以及Request实现?
一楼的可能理解错了

我的意思是我要在第一个页中输入5的话,提交后就显示出5个100-200的不重复随机数,输入87的话就显示出87个。

另外我写了一个固定数组的求10个不重复100-200随机数
<html>
<body>
<%
dim n(10)
for i=1 to 10
Randomize
n(i)=Int((200-100+1)*RND+100)
for q=1 to i
if n(i)=n(q-1) then
n(i)=n(q)+1
end if
next
response.write n(10)
next
%>
</body>
</html>
但运行出来怎么都是1个数,如何能分行显示出10个数出来
展开
 我来答
栽培者
2006-10-19 · TA获得超过1067个赞
知道小有建树答主
回答量:746
采纳率:0%
帮助的人:768万
展开全部
给你一段HTML+脚本吧,你自己改一下。
<SCRIPT Language="VBScript">
'************************************************
'** 函数名称: GetNoRepeatRnd
'** 函数功能: 产生无重复的随机数
'** 参数说明:
'** lngMinNum 要生成培棚空的随机数的最小值
'** lngMaxNum 要生成的随机数的最大值
'** 函数返回:
'** 返回一下标始终为1,上标为lngMaxNum - lngMinNum + 1的随机数列
'** 参考实例:
'** 生成从 1 到 50 之间的随机数
'** Dim lngRnd
'** lngRnd = GetNoRepeatRnd(1, 50)
'************************************************
Public Function GetNoRepeatRnd(ByVal lngMinNum, ByVal lngMaxNum)
Dim lngCyl ' 记数器
Dim lngRnd ' 当前产生的随机数
Dim lngTemp ' 临时用和埋来交换配瞎数据
Dim lngNumber ' 数组的数量
Dim lngReturn() ' 要返回的数组
Randomize
lngNumber = lngMaxNum - lngMinNum + 1
'// 重定义数组
ReDim lngReturn(lngNumber)

'// 给数组赋值,从 lngMinNum 到 lngMaxNum
For lngCyl = lngMinNum To lngMaxNum
lngReturn(lngCyl - lngMinNum + 1) = lngCyl
Next

For lngCyl = 1 To lngNumber
'// 取得一个随机数
lngRnd = Int(Rnd * (lngNumber) + 1)

'********** 数据交换过程 **********
'// 取得当前序号(lngCyl)数组的值
lngTemp = lngReturn(lngCyl)
'// 将当前序号和随机号的内容交换
lngReturn(lngCyl) = lngReturn(lngRnd)
lngReturn(lngRnd) = lngTemp
'**********************************
Next
GetNoRepeatRnd = lngReturn
End Function

Public Function btnGetNumber_OnClick()
Dim i,intNum,lngMinNum,lngMaxNum
Dim lngRnd
Dim strOutput

lngMinNum=document.all.txtMin.value
lngMaxNum=document.all.txtMax.value
intNum=document.all.txtNum.value
lngRnd = GetNoRepeatRnd(lngMinNum, lngMaxNum)

ReDim Preserve lngRnd(intNum)

document.all.txtOutput.value = Mid(Join(lngRnd,","),2)
End Function

</SCRIPT>
个数:<input type="text" id="txtNum" value="5"/>取数从:<input type="text" id="txtMin" value="100"/>到<input type="text" id="txtMax" value="200"/><button id="btnGetNumber">取数</button><br/>
输出:<textarea id="txtOutput" rows="5" cols="80"></textarea>
百度网友fc6539f05
2006-10-19 · TA获得超过112个赞
知道答主
回答量:221
采纳率:0%
帮助的人:0
展开全部
<html>
<消薯head>
<title>N个随机数</title>
</亏型head>
<body>销桥猜
<%
Randomize
dim no
dim bi()
no=request.form("num")
no=cint(no)
Redim bi(no)
for i=1 to no
bi(i)=int((200-100)*rnd+100)
next
for c=1 to i-1
response.write(bi(c))
response.write("<br>")
next
%>
</body>
</html>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mineboy
2006-10-21 · 超过104用户采纳过TA的回答
知道答主
回答量:310
采纳率:0%
帮助的人:0
展开全部
我KAO,要那么多吗消罩则?
楼主请注意,你的方法是得不到完全不同的十个数字的
下面的代码,我用了类递归的方法(闷或可能就是递归)判断产生的数字以保证不会重复,楼主的方法只是判断一次,但是产生的数字如果重复之后加1就会不跟别的数字重复拿棚了吗?希望楼主能仔细的想一下。

public n(10)
Randomize
for i=1 to 10
n(i)=Int(100*RND+100)
numb=n(i)
call rd(numb,i)
response.write n(i)&"<br>"
next
'以下代码特别关键,确保数字不重复
sub rd(numb,j)
for q=1 to j
if numb=n(q-1) then
numb=Int(100*RND+100)
numb=n(j)
call rd(numb,j)
exit for
end if
next
end sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
失落的糖果
2006-10-18 · TA获得超过1200个赞
知道小有建树答主
回答量:467
采纳率:0%
帮助的人:0
展开全部
<亮搏%
dim temp,temp1,sm
sm=20 'request.Form("sm")
'随机函数
Function GetRnd(bound)
DIM ranNum
Randomize()
ranNum=int(bound*rnd)
If Instr(Appeared,"["&ranNum&"]") Then
ranNum = GetRnd(bound)
End If
Appeared = Appeared & "["&ranNum&"]"
GetRnd = ranNum
End Function
'初始孙键空化数组
j=99
ReDim x(101)
for i=0 to 100
x(i)=j+1
j=j+1
next
'打乱数组
for i=0 to 100
temp=GetRnd(101)
temp1=x(i)
x(i)=x(temp)
x(temp)=temp1
next
'输出需则瞎要的值
for i=1 to sm
response.write x(i)&"<br>"
next
%>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangzhe138
2006-10-18 · TA获得超过476个赞
知道小有建树答主
回答量:1571
采纳率:100%
帮助的人:1014万
展开全部
<州橡%
sm=20 'request.Form("sm"租团)

dim cardid(100)
dim cdpassword(100)

for i=0 to sm-1
Randomize
cardid(i)=Right((int(36582918256*rnd*2)),10)
cdpassword(i)=int((126457898*rnd*2))
next
for i=0 to sm-1
response.Write cardid(i)&"<br>"
next

%>弊迹橘
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式