源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

perl产生随机数实现代码

  • 时间:2021-08-31 16:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:perl产生随机数实现代码
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行的文本,该如何做?各位请指点。
[u]复制代码[/u] 代码如下:
#!/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)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部