• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

浅谈随机得控制

发布: 2007-6-30 18:56 | 作者: admin | 来源: | 查看: 18次 | 进入软件测试论坛讨论

领测软件测试网 随机函数的控制主要是通过以随机生成的数字为下标的数组来控制随机的概率


应用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时得系数。
代码编写同上。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网