2015-11-08 60 views
0

如何获得在范围(0123)的随机数(5)VBSCRIPT随机带一步一步

做得到范围内的随机数(0123)我做

Dim max,min 
max=123 
min=0 
Randomize 
response.write(Int((max-min+1)*Rnd+min)) 

但我只需要steped 5 (0,5,10,15,20,...)

回答

1
Function StepRandom(ByVal minValue, ByVal maxValue, ByVal Steps) 
    maxValue = maxValue - maxValue Mod Steps 
    Randomize 
    StepRandom = maxValue-Fix((maxValue - minValue + 1)*Rnd/Steps)*Steps 
End Function 

Response.Write CStr(StepRandom(0,120,5)) 

的基本操作是到最大值调整到正确的步骤点和从该最大值在上述范围内计算下一个步骤点

1

我想,首先,获得真正的最小值和最大值:

If min Mod 5 > 0 Then 
    min = min + (5 - (min Mod 5)) 
End If 
max = max - (max Mod 5) 

然后,得到在0和​​(最大值 - 最小值)/ 5之间的随机数,乘以5,并添加分钟。

Dim number 
number = Int(((((max - min)/5) + 1) * Rnd) * 5 + min)