上一篇:随机生成不重复记录的伪函数 >>
浅谈随机得控制
应用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时得系数。
代码编写同上。
下一篇:一个关于日期选择的很实用的小东西 >>
相关文章:
- · WEB环境中后台自动上传文件至数据库的实现
- · VBScript 函数集
- · 如何在生成的静态页面中显示文章被阅读的次数
- · 查看服务器所有Application变量、Session变量工具
- · 创建一个ASP通用分页类(二)代码部分
- · 创建一个ASP分页类(一)文章部分
- · 错误80004005信息处理方法
- · urldecode 方法补遗。
- · 建立你网站的投票机制![翻译]
- · IIS中的 MIME类型
- · 利用stream直接下载文件
- · 一个统计当前在线用户的解决方案,可以在聊天室、论坛、网站中使用
- · 浅谈TeeChart组件在ASP中的应用
- · 优化你的计数器
- · flash+asp小小研究·
- · ASP中一个字符串处理类(VBScript)
- · 让你的错误提示更生动
- · ASP中令人震撼的Debug类(VBScript)
- · 可以把文章标题中的英文单词的首字母变成大写的函数
- · ASP中一个用VBScript写的随机数类
- · asp标示及命令集合
- · 二级域名原理以及程序,申请即可开通
- · 较长text型数据无法在Asp页面中取出的解决办法
- · ASP中使用Office2000中的图表控件
- · asp中常用的长度单位
- · 用Asp生成条形码
- · windows200s.iis.asp网页中修改access记录时无效
- · 项目中的模块
- · ASP应用范例-分页_执行示意图
- · ASP应用范例-分页_代码部分
- · 将人民币的数字表示转化成大写表示
- · ASP中一个页面多个表单的提交
- · ASP中存储过程调用的两种方式,以及不采用存储过程的方式比较
- · 关于ASP的(VBScript)类,只希望给初学者看一看,希望对你们有帮助
- · 认识ASP内置的对象
- · ASP内置组件
- · ASP内置对象
- · ASP函数
