随机函数的控制!!

iloveyaner 2004-01-08 11:31:46
在网站开发中遇到随机函数得控制问题,希望能和大家交流交流
例:会员刚刚加入时,既等级较低时发生随机事件得概率很高,当达到一定级别时概率为最低。随着级别的再次升高,随机事件概率又提升。
例1:预先设置数组,设置好的数组既有随机概率的控制,用随机函数生成数组的下标,既随机的概率得到控制。
例如:a(0)=1 a(1)=0 a(2)=0 a(3)=0 a(4)=1 a(5)=0 a(6)=0 a(7)=1 a(8)=0 a(9)=0
其中1的个数为3个。数组总数为10。既1的概率为30%。
i=cint(rnd*10)
a(i)为1即为所得得概率
例2:非线形的概率
例:当级别从0-60时,发生随机事件的概率从50%-0%。当级别从60-99时概率为80%。(实际计算中99换为100所得系数好算)
非线形例如一元二次函数。Y=a*X*X+b*X+c
按照以上数据得到两端一元二次函数
第一段:0-60
方程组:
a*0*0+b*0+c=50
-b/2a=60
a*60*60+b*60+c=0
求得
a=1/72、b=5/3、c=50

第二段:60-100
方程组
a*60*60+b*60+c=0
-b/2a=60
a*100*100+b*100+c=80
求得
a=1/20、b=-6、c=-180

代码如下(仅供参考)
dim lv,y,i
'lv为等级
dim a(100)
lv=2
if lv <60 then
y=(lv*lv/72)-(lv*5/3)+50
else
y=(lv*lv/20)-6*lv-180
end if
y=cint(y)
'按照生成得概率生成数组,这里还需要改进
for i=0 to 99
if i<y then
a(i)=1
else
a(i)=0
end if
next
randomize
i=cint(rnd*99)

a(i)为真得概率即为所得概率,可作以后得应用。

例3:幸运参数得设定。可以为每个会员设定幸运值,幸运越高随机事件概率越高。这个是线性得
例:幸运值最大为100万,Y=AX。100=A*100万。A=1万
只需将上面得
if lv <60 then
y=(lv*lv/72)-(lv*5/3)+50
else
y=(lv*lv/20)-6*lv-180
end if
换成
Y=cint(luck/10000)+1
(+1是为了当幸运值小于10000时也可以发生随机事件,概率1%,可根据自己要求定)

这是我目前使用得方法,希望能和大家多多交流,个人感觉可能很占资源和笨拙,找到更好得方法。
MSN:zhi_angel@msn.com QQ:1168064
...全文
64 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveme2000ok 2004-01-09
  • 打赏
  • 举报
回复
谢谢传教,UP
云帆 2004-01-09
  • 打赏
  • 举报
回复
又学了一招,谢谢楼主!
wordman 2004-01-09
  • 打赏
  • 举报
回复
我也UP一下!
xieyj 2004-01-08
  • 打赏
  • 举报
回复
帮你up一下
iloveyaner 2004-01-08
  • 打赏
  • 举报
回复
自己顶一下

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧