ASP随机数总是一样
答案:4 悬赏:10 手机版
解决时间 2021-02-01 11:59
- 提问者网友:感性作祟
- 2021-02-01 05:29
ASP随机数总是一样
最佳答案
- 五星知识达人网友:孤独入客枕
- 2021-02-01 06:36
前面加个
randomize追问是这样吗?
temp2=randomize(round(((100-95+1)*rnd+95)/100*temp1,2))追答不是,单独一行
randomize
temp2=round(((100-95+1)*rnd+95)/100*temp1,2)追问谢谢你,现在是真正的随机了,但是发现个问题,下限有时候大于了100,上限暂时没发现问题。代码一定还有哪里出错了。追答你的随机数是95-100,在除以100,范围就是0.95-1之间。这个范围在乘以你的单价,结果也就是你价格的95折到100折这个随机数。如果你的价格很高的话,这个价格肯定大于100了追问不是这个意思,是下限超过了单价的100%,我的原意是
下限=单价*(0.95-1)内的一个随机数,结果应该小于单价的,现在有的结果大于单价追答temp2=round(int((100-95+1)*rnd+95)/100*temp1,2)追问你的代码得出的结果是整数,没有2位小数了
帮我看看啊,你的改动小,就采纳你的了
randomize追问是这样吗?
temp2=randomize(round(((100-95+1)*rnd+95)/100*temp1,2))追答不是,单独一行
randomize
temp2=round(((100-95+1)*rnd+95)/100*temp1,2)追问谢谢你,现在是真正的随机了,但是发现个问题,下限有时候大于了100,上限暂时没发现问题。代码一定还有哪里出错了。追答你的随机数是95-100,在除以100,范围就是0.95-1之间。这个范围在乘以你的单价,结果也就是你价格的95折到100折这个随机数。如果你的价格很高的话,这个价格肯定大于100了追问不是这个意思,是下限超过了单价的100%,我的原意是
下限=单价*(0.95-1)内的一个随机数,结果应该小于单价的,现在有的结果大于单价追答temp2=round(int((100-95+1)*rnd+95)/100*temp1,2)追问你的代码得出的结果是整数,没有2位小数了
帮我看看啊,你的改动小,就采纳你的了
全部回答
- 1楼网友:我住北渡口
- 2021-02-01 08:42
Function RndNumber(Min,Max)
Randomize
RndNumber=Int((Max - Min + 1) * Rnd() + Min)
End Function
temp3=RndNumber
temp2=round(((100-95+1)*rnd+95)+temp3/100*temp1,2)
Randomize
RndNumber=Int((Max - Min + 1) * Rnd() + Min)
End Function
temp3=RndNumber
temp2=round(((100-95+1)*rnd+95)+temp3/100*temp1,2)
- 2楼网友:过活
- 2021-02-01 08:24
大多数电脑可以随机取值,一台电脑不行。这再明显不过了。 你把浏览器的缓存清理下再试试。 要贴出代码才能知道 这样说的话 太模糊了 而且是你说的追问代码在下面啊
- 3楼网友:我住北渡口
- 2021-02-01 07:28
<%
function rndarray(istart,iend,sum)
'istart和iend是数的开始和结束 sum是你要输出数的个数
dim arrayid(),i,j,blnre,temp,iloop,eloop
redim arrayid(sum-1)
i=0
iloop=0
eloop=0
blnre=false
randomize
do while i temp=int(rnd*(iend-istart+1)+istart)
if i=0 then
arrayid(0)=temp
i=i+1
iloop=iloop+1
else
for j=0 to i-1
if arrayid(j)=temp then
blnre=true
iloop=iloop+1
exit for'这一句很重要,防止多余的循环
else
iloop=iloop+1
end if
next
if blnre=false then
arrayid(i)=temp
i=i+1
else
blnre=false
end if
end if
eloop=eloop+iloop
iloop=0
loop
rndarray=join(arrayid)&"循环次数:"&eloop
end function
response.write rndarray(1,20,10)&"
"'调用过程
%>
function rndarray(istart,iend,sum)
'istart和iend是数的开始和结束 sum是你要输出数的个数
dim arrayid(),i,j,blnre,temp,iloop,eloop
redim arrayid(sum-1)
i=0
iloop=0
eloop=0
blnre=false
randomize
do while i
if i=0 then
arrayid(0)=temp
i=i+1
iloop=iloop+1
else
for j=0 to i-1
if arrayid(j)=temp then
blnre=true
iloop=iloop+1
exit for'这一句很重要,防止多余的循环
else
iloop=iloop+1
end if
next
if blnre=false then
arrayid(i)=temp
i=i+1
else
blnre=false
end if
end if
eloop=eloop+iloop
iloop=0
loop
rndarray=join(arrayid)&"循环次数:"&eloop
end function
response.write rndarray(1,20,10)&"
"'调用过程
%>
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯