專家答疑 如何產(chǎn)生Perl隨機數(shù)
本文和大家重點討論一下Perl隨機數(shù)的概念,如果你需要為你的下一個游戲或者動態(tài)Web網(wǎng)站的新特性設(shè)計一個簡單的Perl隨機數(shù)生成器,那么rand()和srand()可能就是你所需要的。
如何產(chǎn)生Perl隨機數(shù)
Perl利用函數(shù)rand()和srand()為Perl隨機數(shù)(更確切的說是“偽Perl隨機數(shù)”)字符串的生成提供了基本的工具。這些函數(shù)不是利用加密來提供安全性的,所以不要利用它們?yōu)槟憬鹑谛畔⒌募用?。但是,如果你需要為你的下一個游戲或者動態(tài)Web網(wǎng)站的新特性設(shè)計一個簡單的Perl隨機數(shù)生成器,那么rand()和srand()可能就是你所需要的。
函數(shù)rand()是真正的Perl隨機數(shù)生成器,而srand()會設(shè)置供rand()使用的Perl隨機數(shù)種子。函數(shù)rand()會返回一個處于0和你所指定的數(shù)值(缺省為1)之間的分數(shù)。如果你在第一次調(diào)用rand()之前沒有調(diào)用srand(),那么系統(tǒng)會為你自動調(diào)用srand()。
要注意,使用同種子相同的數(shù)調(diào)用srand()會導(dǎo)致相同的Perl隨機數(shù)序列被生成。這在有的時候很方便,尤其在游戲編程里,你可能想要重復(fù)讓隨機事件按照精確的相同序列出現(xiàn)。
像下面這樣使用rand():
print"Yourluckynumberfortodayis:".int(rand(100)+1)."";
Perl隨機數(shù)指令:rand
語法:rand($interger)
說明:常和函數(shù)srand搭配來取得一Perl隨機數(shù),如果沒有先宣告stand函數(shù)的話,則取出的常數(shù)值是一個固定值。這個語法會返回一個介于0和$interger之間的數(shù)值,如果$interger省略的話,則會返回一個介于0和1的數(shù)值。
示例:
srand;#要先宣告srand函數(shù),才能產(chǎn)生Perl隨機數(shù)的效果
$int=rand(10);#$int的值會大于0而且小于10如果希望產(chǎn)生的亂數(shù)是整數(shù)的話,就要再加上int#這個函數(shù)
$int=int(rand(10));#$int的值是一個整數(shù),且值在0和9之間
--------------------------
$int=rand(10);
$int=int(rand(10));
print"intis$int\n";
運行:
intis9
再次運行:
intis7
#可見rand取的是Perl隨機數(shù)字
【編輯推薦】
- 深入學(xué)習(xí)Perl運算符用法
- Perl文件句柄概念詳解
- 解析四大Perl操作符用法
- 專家推薦 幾款常用Perl開發(fā)工具
- 學(xué)習(xí)筆記 Perl數(shù)字與字符串間的自動轉(zhuǎn)換