ASP随机数几率问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 05:36:26
我现在用以下代码生成1-36之间的随机数idouble
Randomize
idouble=int((1 -36 + 1) * Rnd+ 36 )

我现在想生成一个在1-36之间的随机数,并且提高3,5,10,13,15,18,20,24,27,29,34等一些数字的几率,有什么办法?

本问题有满意回答后追加分数,最少100,回答效率并且可用的可另外开问题补分
谢谢anson985 的回答,不过好像不行

==========================================
lzh741206 的回答遇到如下错误

错误类型:
Microsoft VBScript 编译器错误 (0x800A0401)
语句未结束
/ran.asp, line 3, column 10
Dim b(99) As Integer

把随机数的范围放大,然后按返回值判断
1-36为原值
>36时按照一定的规则,把它转成3,5,10,13,15,18,20,24,27,29,34这些数的一个

dim a(10),x
a(0)=3
a(1)=5
a(2)=10
a(3)=13
a(4)=15
a(5)=18
a(6)=20
a(7)=24
a(8)=27
a(9)=29
a(10)=34

Dim b(99)
dim i
For i = 0 To 99
Randomize
x = Int(Rnd * 47) + 1
If x > 36 Then
x = a(x Mod 11)
End If
b(i) = x
Next
另外,你好像并不需要放在数组b里?

Sub suiji(n)
Dim a
response.write("以下生成"&request.querystring("suiji")&"个随机字符串:<br />")
response.write("<a href='生成随机数.html'>返回</a><br />")
For i=1 To n
a=Rnd()
If a<=0.3 then
Randomize
response.write(Chr(int(Rnd()*(57-48+1))+48))
ElseIf a>0.3 And a<=0.6 then
Randomize
response.write(Chr(Int(Rnd()*(90-65+1))+65))
Else
randomize
response.write(Chr(int(Rnd()*(122