欢迎光临
我们一直在努力

浅谈随机得控制-ASP教程,脚本编码

建站超值云服务器,限时71元/月

随机函数的控制主要是通过以随机生成的数字为下标的数组来控制随机的概率

应用1:简单的控制:

要求:某论坛发生某随机事件的概率为30%

思考:可以直接通过数组进行控制,数组为个数10个,其中值为1的有3个,其余的都是0,用随机函数随机生成数字下标,既得到30%的概率

代码:

<%

a(0)=0

a(1)=0

a(2)=1

a(3)=0

a(4)=1

a(5)=0

a(6)=1

a(7)=0

a(8)=0

a(9)=0

randomize

i=cint(rnd*10)

if a(i) then

发生随机事件

end if

%>

应用2:线性的控制

要求:某论坛为鼓励用户发表文章,在发表文章时产生随机的事件,例如给用户分数、金币、物品等。概率随用户的文章数的增加而增加,当文章数达某个值,达到最大100%。

思考:因为是线性增加,则此函数为y=kx+b。其中y为概率,x为文章数,k、b为系数。例如:当文章数为0时概率为1%(这个值可根据自己需要设定),当用户文章数达到10000时,概率为100。

既:1=k*0+b 100=k*10000+b。得到b=1、k=0.0099

代码:

<%

odds=0.0099*postnum+1 postnum为发表的文章数

if odds>100 then odds=100

end if

odds=cint(odds)

for i=0 to 99

if i<odds then a(i)=1

else a(i)=0

end if

next

randomize

i=cint(rnd*100)

if a(i) then

发生随机事件

end if

%>

应用3:线性、非线性的控制

要求:某论坛发生的随机事件的概率当文章数为0时,发生的概率为60%。当文章数由0-100,概率降低,当为100时达到最低10%,随后概率一直增高。当达到10000时达到最大90%。文章数大于10000时,概率也为90%。

思考:可分为线性和非线性控制。

先看线性:分为3段。0-100 y=kx+b 。根据数据得k=-0.5、b=60 ;当100-10000时求得k=8/990、b=9100/990。当10000-无穷时。只需将应用2中得代码odds=0.0099*postnum+1换成如下代码:

if postnum>=0 and postnum<=100 then

odds=-0.5*postnum+60

else

odds=8*postnum/990+9100/990

end if

if odds>90 then

odds=90

end if

如果是非线性。例如一元二次方程y=a*x*x+b*x+c

用以上方法求得当0-100 100-10000 和大于10000时得系数。

代码编写同上。

这是我目前使用得方法,希望能和大家交流。qq:1168064

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 浅谈随机得控制-ASP教程,脚本编码
分享到: 更多 (0)

相关推荐

  • 暂无文章