• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    perl产生随机数实现代码
    POST TIME:2021-10-18 15:14

    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 指定长度并生成一个随机的DNA序列的脚本代码
    • perl生成特定碱基比例的随机序列的代码
    • perl写的一个随机编故事的程序(rand随机函数)
    • 使用Perl生成随机密码
    上一篇:使用perl清理电脑上重复文件实现代码(续)
    下一篇:两段Perl脚本代码(数组应用与say用法)
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信