perl中srand()與time的函數使用方法介紹_應用技巧

來源:互聯網
上載者:User

在perl中srand()提供供rand()使用的隨機數種子,rand()產生隨機數產生器。
如果在第一次調用rand()之前沒有調用srand(),那麼系統會為你自動調用srand()。
使用同種子相同的數調用srand()會導致相同的隨機數序列被產生。

舉例如下:

複製代碼 代碼如下:

srand(26); 
$number1=rand(100); 
print "$number1\n"; 
srand(26); 
$number2=rand(100); 
print "$number2\n";

得到的結果如下:
F:\>perl\a.pl 
0.3753662109375 
0.3753662109375

若果我們把第二個srand(26)去掉,如下:

複製代碼 代碼如下:

srand(26); 
$number1=rand(100); 
print "$number1\n"; 
$number2=rand(100); 
print "$number2\n";

得到的結果如下:
F:\>perl\a.pl 
0.3753662109375 
76.397705078125 

F:\>

這樣產生的兩個數值就不一樣了。

附帶一個小程式,利用了一個子程式,隨機輸出了20個隨機數值,在這裡利用了,srand(time|$$),也就是每次都利給srand賦予新的種子,這樣就保證得到的隨機數就不一樣,同樣裡面time函數擷取當前的時間,因為時間是不同的,所以種子就不同,我們得到的隨機數就不同。

複製代碼 代碼如下:

#!/usr/bin/perl
my $dna='AACCGTTAATGGGCATCGATGCTATGCGAGCT'; 
srand(time|$$); 
for (my $i=0;$i<20;++$i) 

    print randomposition($dna), " "; 

print "\n"; 
exit; 

sub randomposition 

   my($string)=@_; 
   return int rand length $string; 
}

我們就time的各個函數做出說明:
print "time()=".time()."\n";#從1970年到現在的秒數 
print "localtime()=".localtime()."\n";#目前時間 
print "gmtime()=".gmtime()."\n";#標準格林威治時間

輸出結果如下:
F:\>perl\a.pl 
time()=1350309421 
localtime()=Mon Oct 15 21:57:01 2012 
gmtime()=Mon Oct 15 13:57:01 2012 

F:\>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.