perl产生随机数实现代码

时间:2023-04-14 05:30:10 

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″;

标签:随机数
0
投稿

猜你喜欢

  • 关于鼠标、键盘的几个事件的例子

    2008-07-27 17:00:00
  • python编程之requests在网络请求中添加cookies参数方法详解

    2023-07-03 00:48:23
  • sqlserver substring函数使用方法小结

    2024-01-19 17:53:03
  • python误差棒图errorbar()函数实例解析

    2023-12-14 22:39:49
  • 在python中计算ssim的方法(与Matlab结果一致)

    2023-08-19 03:33:21
  • 关于Python中的同步异步阻塞与非阻塞

    2021-09-03 05:54:01
  • 禁止在网页里面是用搜狗的云输入法

    2009-11-29 15:50:00
  • Mysql数据库的主从复制与读写分离精讲教程

    2024-01-13 14:06:08
  • 对pycharm 修改程序运行所需内存详解

    2022-10-23 09:14:58
  • SQL Server DBA维护常用语句

    2024-01-22 01:47:00
  • Python requests发送post请求的一些疑点

    2022-09-09 17:45:03
  • python中decimal模块的用法

    2021-01-20 06:54:57
  • Python爬虫框架Scrapy安装使用步骤

    2022-02-23 13:49:09
  • asp.net+FCKeditor上传图片显示叉叉图片无法显示的问题的解决方法

    2022-05-19 17:08:22
  • 在keras下实现多个模型的融合方式

    2023-06-03 17:14:59
  • Python实现快速保存微信公众号文章中的图片

    2021-02-18 23:03:25
  • python列表去重的二种方法

    2022-06-02 05:21:41
  • 前端框架之封装Vue第三方组件三个技巧

    2023-07-02 16:37:03
  • pandas创建series的三种方法小结

    2023-02-28 20:59:23
  • 微信小程序实现电影App导航和轮播

    2024-04-18 09:49:32
  • asp之家 网络编程 m.aspxhome.com