函式rnd()是乙個非常重要的函式。如果你想建立乙個隨機的問候語,乙個日期的隨機提示,或者甚至乙個遊戲,你將要使用這個函式。
函式rnd()返回乙個0到1之間的隨機數。這裡有這個函式的乙個例子及其可能的返回值:
<%=rnd()%>
0.7055643
典型情況下,你更感興趣的是用這個函式來返回處在一定範圍內的整數。要返回乙個大於等於0而小於某個特定整數的數字,你可以使用如下的語句:
<%=int((upperbound+1)*rnd)%>
用你想產生的最大隨機數代替表示式upperbound。例如,下面的指令碼返回乙個0和5之間的數,包括0和5:
<%=int(5+1)*rnd)%>
如果你想產生乙個處在某個範圍內的隨機數,該範圍有乙個大於0的下界,可以使用如下的指令碼:
<%=int((upperbound – lowerbound + 1)*rnd+lowerbound)%>
例如,下面的指令碼產生乙個50到75之間的隨機數(包括50和75):
<%=int((75-50+1)*rnd+50)%>
無論何時使用函式rnd(),它將以同樣的順序返回同樣的隨機數,這也許另你吃驚。考慮如下的例子:
pick_greeting=int((2+1)*rnd)
select case pick_greeting
case 0
greeting=」welcome!」
case 1
greeting=」hello!」
case 2
end select
<%=greeting%>
有乙個特殊的語句可以幫助解決這個問題。randomize語句用來強制函式rnd()使用乙個新的隨機數序列。randomize語句通過計算機的系統計時器,為函式rnd()提供乙個新的種子值。下面的例子顯示了如何修改上面的例子,使其正確工作:
randomize
pick_greeting=int((2+1)*rnd)
select case pick_greeting
case 0
greeting=」welcome!」
case 1
greeting=」hello!」
case 2
end select
<%=greeting%>
這個指令碼可以正確工作。每次執行這個指令碼時,將會產生乙個新的隨機問候。randomize語句強制函式rnd()使用新的隨機數序列。
最後,如果你對函式rnd()所產生的數值的分布感到好奇,你可以用下面的指令碼來確定它:
const upperbound=9,iterations=100
redim dist(upperbound)
randomize
for i=1 to iterations
rnd_num=int((upperbound+1)*rnd)
dist(rnd_num)=dist(rnd_num)&」#」
next
for i=0 to upperbound
<%=i&」 : 「&dist(i)%>
next
這段指令碼在0到9之間產生100個隨機數。它跟蹤對於每乙個值有多少個隨機數產生。最後,它列印乙個代表結果的條形圖
隨機數 偽隨機數
隨機數 偽隨機數 rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次呼叫rand函式生成的偽隨機數序列都是一樣的。srand unsigned seed 通過引數seed改變系統提供的種子值,從而可以使得每次呼...
opencv 隨機數使用
包含標頭檔案 include 返回隨機int的函式原型 returns a random integer sampled uniformly from 0,n unsigned operator unsigned n 例子 rng rng therng unsigned int rand num r...
C 使用隨機數
使用語言 c 環境 net framework 4.6.1 當前使用 貌似支援所有環境,我就不多說了 random 這個類是偽隨機數生成器 private int suijishushenchenfun 參考上面 實現,可得到100到200之間的隨機數 random 這個類裡面有 2 種常用隨機返回...