主頁(yè) > 知識(shí)庫(kù) > perl產(chǎn)生隨機(jī)數(shù)實(shí)現(xiàn)代碼

perl產(chǎn)生隨機(jī)數(shù)實(shí)現(xiàn)代碼

熱門(mén)標(biāo)簽:買(mǎi)了外呼系統(tǒng)不想用了怎么辦 開(kāi)封百應(yīng)電銷(xiāo)機(jī)器人聯(lián)系方式 武漢呼叫中心外呼系統(tǒng)線(xiàn)路商 浦東上海400開(kāi)頭的電話(huà)申請(qǐng) 邯鄲外呼調(diào)研線(xiàn)路 北京語(yǔ)音電銷(xiāo)機(jī)器人價(jià)格 真人語(yǔ)音電銷(xiāo)機(jī)器人系統(tǒng) 電話(huà)機(jī)器人電話(huà)卡封號(hào)怎么辦 樂(lè)昌電話(huà)機(jī)器人

Perl利用函數(shù)rand()和srand()為隨機(jī)數(shù)(更確切的說(shuō)是"偽隨機(jī)數(shù)")字符串的生成提供了基本的工具。這些函數(shù)不是利用加密來(lái)提供安 全性的,所以不要利用它們?yōu)槟憬鹑谛畔⒌募用?。但是,如果你需要為你的下一個(gè)游戲或者動(dòng)態(tài)Web網(wǎng)站的新特性設(shè)計(jì)一個(gè)簡(jiǎn)單的隨機(jī)數(shù)生成器,那么 rand()和srand()可能就是你所需要的。

函數(shù)rand()是真正的隨機(jī)數(shù)生成器,而srand()會(huì)設(shè)置供rand()使用的隨機(jī)數(shù)種子。函數(shù)rand()會(huì)返回一個(gè)處于0和你所指定的數(shù) 值(缺省為1)之間的分?jǐn)?shù)。如果你在第一次調(diào)用rand()之前沒(méi)有調(diào)用srand(),那么系統(tǒng)會(huì)為你自動(dòng)調(diào)用srand()。

要注意,使用同種子相同的數(shù)調(diào)用srand()會(huì)導(dǎo)致相同的隨機(jī)數(shù)序列被生成。這在有的時(shí)候很方便,尤其在游戲編程里,你可能想要重復(fù)讓隨機(jī)事件按照精確的相同序列出現(xiàn)。

像下面這樣使用rand():

print "Your lucky number for today is: " . int(rand(100) + 1) . " ";
指令:rand
語(yǔ)法:rand($interger)
說(shuō)明:常和函數(shù)srand搭配來(lái)取得一隨機(jī)數(shù),如果沒(méi)有先宣告stand函數(shù)的話(huà),則取出的常數(shù)值是一個(gè)固定值。這個(gè)語(yǔ)法會(huì)返回一個(gè)介于0和$interger之間的數(shù)值,如果$interger省略的話(huà),則會(huì)返回一個(gè)介于0和1 的數(shù)值。

示例:
srand; #要先宣告srand函數(shù),才能產(chǎn)生隨機(jī)數(shù)的效果
$int=rand(10); #$int的值會(huì)大于0而且小于10如果希望產(chǎn)生的亂數(shù)是整數(shù)的話(huà),就要再加上int #這個(gè)函數(shù)
$int=int(rand(10)); #$int的值是一個(gè)整數(shù),且值在0和9之間
————————–
$int=rand(10);
$int=int(rand(10));
print "int is $int\n";

運(yùn)行:

int is 9
再次運(yùn)行:
int is 7
#可見(jiàn)rand取的是隨機(jī)數(shù)字

實(shí)例:我有一個(gè)7000行的文本數(shù)據(jù),想每次從中隨機(jī)提取1280行,提取100次,最后生成100個(gè)1280行的文本,該如何做?各位請(qǐng)指點(diǎn)。

復(fù)制代碼 代碼如下:

#!/usr/bin/perl
use strict;
use warnings;

my $data_file = "file1″;
print " Generating …\n";
open FH, "$data_file" or die "Can not open the required file $data_file !";
my @data = FH>;
close FH;

for (1..100) {
my %hash;
while ((keys %hash) 1280) {
$hash{int(rand($#data))} = 1;
}
open OUT, ">random$_.txt" or die "Can not open the required file random$_.txt !";
foreach (keys %hash) {
print OUT "$data[$_]";
}
close OUT;
}
print " Complete!\7″;

您可能感興趣的文章:
  • perl 指定長(zhǎng)度并生成一個(gè)隨機(jī)的DNA序列的腳本代碼
  • perl生成特定堿基比例的隨機(jī)序列的代碼
  • perl寫(xiě)的一個(gè)隨機(jī)編故事的程序(rand隨機(jī)函數(shù))
  • 使用Perl生成隨機(jī)密碼

標(biāo)簽:河北 六安 石嘴山 自貢 鄂州 宜春 松原 淄博

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《perl產(chǎn)生隨機(jī)數(shù)實(shí)現(xiàn)代碼》,本文關(guān)鍵詞  perl,產(chǎn)生,隨機(jī)數(shù),實(shí)現(xiàn),代碼,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《perl產(chǎn)生隨機(jī)數(shù)實(shí)現(xiàn)代碼》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于perl產(chǎn)生隨機(jī)數(shù)實(shí)現(xiàn)代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章