perl产生随机数实现代码

 更新时间:2013年02月04日 16:49:11   作者:  
Perl利用函数rand()和srand()为随机数(更确切的说是“伪随机数”)字符串的生成提供了基本的工具

Perl利用函数rand()和srand()为随机数(更确切的说是"伪随机数")字符串的生成提供了基本的工具。这些函数不是利用加密来提供安 全性的,所以不要利用它们为你金融信息的加密。但是,如果你需要为你的下一个游戏或者动态Web网站的新特性设计一个简单的随机数生成器,那么 rand()和srand()可能就是你所需要的。

函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。函数rand()会返回一个处于0和你所指定的数 值(缺省为1)之间的分数。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。

要注意,使用同种子相同的数调用srand()会导致相同的随机数序列被生成。这在有的时候很方便,尤其在游戏编程里,你可能想要重复让随机事件按照精确的相同序列出现。

像下面这样使用rand():

print "Your lucky number for today is: " . int(rand(100) + 1) . " ";
指令:rand
语法:rand($interger)
说明:常和函数srand搭配来取得一随机数,如果没有先宣告stand函数的话,则取出的常数值是一个固定值。这个语法会返回一个介于0和$interger之间的数值,如果$interger省略的话,则会返回一个介于0和1 的数值。

示例:
srand; #要先宣告srand函数,才能产生随机数的效果
$int=rand(10); #$int的值会大于0而且小于10如果希望产生的乱数是整数的话,就要再加上int #这个函数
$int=int(rand(10)); #$int的值是一个整数,且值在0和9之间
————————–
$int=rand(10);
$int=int(rand(10));
print "int is $int\n";

运行:

int is 9
再次运行:
int is 7
#可见rand取的是随机数字

实例:我有一个7000行的文本数据,想每次从中随机提取1280行,提取100次,最后生成100个1280行的文本,该如何做?各位请指点。

复制代码 代码如下:

#!/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扩展正则表达式代码分析

    一个perl扩展正则表达式代码分析

    今天傍晚回来翻了翻perlre文档,基本算是看懂,赶紧记录下来
    2013-02-02
  • perl几个文件操作例子

    perl几个文件操作例子

    这篇文章主要介绍了perl几个文件操作例子,讲解了删除文件、读取文件、一次性读取等,需要的朋友可以参考下
    2014-06-06
  • Perl中use和require用法对比分析

    Perl中use和require用法对比分析

    Perl 中的use和require,都是用来加载和引用Perl的模块,或者是子程序,区别在于Perl use是在当前默认的里面去寻找,一旦模块不在指定的区域内的化,用Perl use是不可以引入的
    2013-02-02
  • Perl字符串处理函数大全

    Perl字符串处理函数大全

    本文重点讨论Perl字符串处理函数的用法,每种函数都有各自的特点和作用,需要的朋友可以参考下
    2017-09-09
  • perl文件操作的一些例子分享

    perl文件操作的一些例子分享

    有关perl文件操作的一些例子,供大家学习参考
    2013-02-02
  • Perl进行错误处理和创建子程序的示例

    Perl进行错误处理和创建子程序的示例

    这篇文章主要介绍了Perl进行错误处理和创建子程序的示例,Perl允许开发者编写健壮的代码,能够优雅地处理运行时错误和异常情况,需要的朋友可以参考下
    2024-06-06
  • Perl AnyEvent中的watcher实例

    Perl AnyEvent中的watcher实例

    这篇文章主要介绍了Perl AnyEvent中的watcher实例,关于AnyEvent请参阅的更多介绍请参阅文中的相关链接,需要的朋友可以参考下
    2014-09-09
  • Perl中使用MIME::Lite发送邮件实例

    Perl中使用MIME::Lite发送邮件实例

    这篇文章主要介绍了Perl中使用MIME::Lite发送邮件实例,本文介绍了使用sendmail方式发送、发送HTML格式邮件、smtp方式发送邮件等内容,需要的朋友可以参考下
    2014-09-09
  • perl模块Data::Dumper应用一例分享

    perl模块Data::Dumper应用一例分享

    perl模块Data::Dumper应用一例,参见下面的代码
    2013-02-02
  • 学习perl的unless控制结构

    学习perl的unless控制结构

    在perl的if控制结构中,只有当条件表达式为真时才执行某块代码。如果想让程序块在条件为假时才执行,此时可以把if改成unless
    2013-02-02

最新评论