明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

淺談隨機得控制

[摘要]隨機函數(shù)的控制主要是通過以隨機生成的數(shù)字為下標的數(shù)組來控制隨機的概率 應用1:簡單的控制: 要求:某論壇發(fā)生某隨機事件的概率為30% 思考:可以直接通過數(shù)組進行控制,數(shù)組為個數(shù)10個,其中值為1的有3個,其余的都是0,用隨機函數(shù)隨機生成數(shù)字下標,既得到30%的概率 代碼: <% a(0)=0...

隨機函數(shù)的控制主要是通過以隨機生成的數(shù)字為下標的數(shù)組來控制隨機的概率


應用1:簡單的控制:
要求:某論壇發(fā)生某隨機事件的概率為30%
思考:可以直接通過數(shù)組進行控制,數(shù)組為個數(shù)10個,其中值為1的有3個,其余的都是0,用隨機函數(shù)隨機生成數(shù)字下標,既得到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
發(fā)生隨機事件
end if
%>

應用2:線性的控制
要求:某論壇為鼓勵用戶發(fā)表文章,在發(fā)表文章時產(chǎn)生隨機的事件,例如給用戶分數(shù)、金幣、物品等。概率隨用戶的文章數(shù)的增加而增加,當文章數(shù)達某個值,達到最大100%。
思考:因為是線性增加,則此函數(shù)為Y=KX+b。其中Y為概率,X為文章數(shù),K、b為系數(shù)。例如:當文章數(shù)為0時概率為1%(這個值可根據(jù)自己需要設定),當用戶文章數(shù)達到10000時,概率為100。
既:1=K*0+b 100=K*10000+b。得到b=1、k=0.0099
代碼:
<%
odds=0.0099*postnum+1 'postnum為發(fā)表的文章數(shù)
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
發(fā)生隨機事件
end if
%>
應用3:線性、非線性的控制
要求:某論壇發(fā)生的隨機事件的概率當文章數(shù)為0時,發(fā)生的概率為60%。當文章數(shù)由0-100,概率降低,當為100時達到最低10%,隨后概率一直增高。當達到10000時達到最大90%。文章數(shù)大于10000時,概率也為90%。
思考:可分為線性和非線性控制。
先看線性:分為3段。0-100 Y=KX+b 。根據(jù)數(shù)據(jù)得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時得系數(shù)。
代碼編寫同上。

這是我目前使用得方法,希望能和大家交流