perl中srand()与time的函数使用方法介绍_应用技巧

在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:\>

时间: 2024-09-29 23:10:33

perl中srand()与time的函数使用方法介绍_应用技巧的相关文章

C#中使用SQLite数据库的方法介绍_实用技巧

[SQLite管理工具简介] 推荐以下2款: Navicat for SQLite:功能非常强大,几乎包含了数据库管理工具的所有必需功能,操作简单,容易上手.唯一的缺点是不能打开由System.Data.SQLite.dll加密过的数据库. Database.Net:台湾人用.net开发的全能数据库管理工具,可以管理多种数据库,包括MSSQL.MYSQL.IBM DB2.Oracle.Access.Excel.OleDb.Odbc等十多种数据库(或数据接口),功能没有Navicat那么多,只包含

asp.net中Fine Uploader文件上传组件使用介绍_实用技巧

最近在处理后台数据时需要实现文件上传.考虑到对浏览器适配上采用Fine Uploader. Fine Uploader 采用ajax方式实现对文件上传.同时在浏览器中直接支持文件拖拽[对浏览器版本有要求类似IE版本必须是9或是更高的IE10].在不同浏览器中提供统一用户体验.该组件基本覆盖目前所有主流浏览器.同时没有任何第三方组件依赖.相当Clear.在服务器端已经覆盖支持了ASP.NET/ColdFusion/Java/Node.js/Perl/PHP/Python. 对上传细节类似限制文件大

Asp.net中static变量和viewstate的使用方法(谨慎)_实用技巧

在.Net平台下进行CS软件开发时,我们经常遇到以后还要用到某些变量上次修改后的值,为了简单起见,很多人都习惯用static来定义这些变量,我也是.这样非常方便,下一次调用某个函数时该变量仍然保存的是处理过的值,直接拿来用就可以了. 现在转入了BS软件开发,我们很自然地会沿用这种习惯.如在页面中统计某个按钮被按下的次数,先在类中OnClick事件的处理过程前定义一static变量times,则每次调用该按钮的OnClick事件时,令times增1即可,非常方便: [C#]: 复制代码 代码如下:

Asp.net中DataTable导出到Excel的方法介绍_实用技巧

复制代码 代码如下: #region  DataTable导出到Excel        /// <summary>        /// DataTable导出到Excel        /// </summary>        /// <param name="pData">DataTable</param>        /// <param name="pFileName">导出文件名</p

asp.net中几种常用的身份验证方法总结_实用技巧

前言 在B/S系统开发中,经常需要使用"身份验证".因为web应用程序非常特殊,和传统的C/S程序不同,默认情况下(不采用任何身份验证方式和权限控制手段),当你的程序在互联网/局域网上公开后,任何人都能够访问你的web应用程序的资源,这样很难保障应用程序安全性.通俗点来说:对于大多数的内部系统.业务支撑平台等而言,用户必须登录,否则无法访问和操作任何页面.而对于互联网(网站)而言,又有些差异,因为通常网站的大部分页面和信息都是对外公开的,只有涉及到注册用户个人信息的操作,或者网站的后台

在.NET中使用Newtonsoft.Json转换,读取,写入的方法介绍_实用技巧

全局引用 using Newtonsoft.Json; using Newtonsoft.Json.Converters; //把Json字符串反序列化为对象 目标对象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof(目标对象)); //把目标对象序列化为Json字符串 stringJson字符串 = JavaScriptConvert.SerializeObject(目标对象); 1.引用Newtonsoft.Json.dll: 2.

ASP.NET中后台注册js脚本使用的方法对比_实用技巧

用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:区别: 1.使用Page.ClientScript.RegisterClientScriptBlock c#代码 复制代码 代码如下: <%@ Page Language="C#" %> <script runat="server"> protected void Page

asp.net字符串分割函数使用方法分享_实用技巧

先来看个简单的实例 但是其数组长度却是25,而不是3.下面这种方法是先将"[jb51.net]"替换成一个特殊字符,比如$,在根据这个字符执行Split 例如下面根据[jb51.net]分割 复制代码 代码如下: string[] arrstr2 = str.Replace("[jb51.net]", "$").Split('$'); 好了看其它方法.最简单最常用的方法,以一个指定的字符进行的分割 打开vs.net新建一个控制台项目.然后在Mai

ASP.NET中Web.config文件的层次关系详细介绍_实用技巧

Web.config 是一个基于 XML 的配置文件,该文件的作用是对应用程序进行配置,比如规定客户的认证方法,基于角色的安全技术的策略,数据绑 定的方法,远程处理对象等. 可以在网站的根目录和子目录下分别建立自己的 Web.config 文件,也可以一个Web.config 文件都不建立,Web.config 并不是网站必备的文件.这是因为服务器有一个总 的配置文件,名为"Machine.config" ,默认安装在"C:\Windows\Microsoft.NET\ Fr