永发信息网

使用perl 生成随机数

答案:2  悬赏:50  手机版
解决时间 2021-03-03 22:49
  • 提问者网友:皆是孤独
  • 2021-03-03 00:23
使用perl 生成随机数
最佳答案
  • 五星知识达人网友:低血压的长颈鹿
  • 2021-03-03 00:44
有一个小错误,输出的当是$num
#!/usr/bin/perl
open (OUT, ">>random_num.txt");

@step = ();

while (1){
$num= int (rand(200)); #所取随机数范围!
$i = 0;
foreach $step (@step){
if ($step eq $num){
$i = 1;
last;
}
}
if ($i == 0){
push (@step, $num);
}
$k = $#step + 1;
if ($k == 200){ #所要的随机数个数!!
print OUT "@step\n"; ######应该是"print OUT "$num\n";
last;
}
}

现在这个脚本应该是输出201个各不相同的随机数(0<=x<=199)

我写了一个,执行同样的功能,输出200个各不相同的随机数(0<=x<=199)

#!/usr/bin/perl -w
use strict; ##语法检查

open (OUT, ">>random_num.txt");
srand(); #产生随机数种子,保证每次运行本脚本,输出不同随机数

my $p=0;
my %tag; #记录随机数是否出现过
while (1){
my $num= int (rand(200));
next if(defined($tag{$num})); #判断随机数是否出现过
$tag{$num}=1;
print OUT "$num\n";
$p++;
last if($p==200);
}
close OUT; #关闭文件
全部回答
  • 1楼网友:老鼠爱大米
  • 2021-03-03 01:19
#!/usr/bin/perl -w
use strict;
use warnings;
open OUT,(">random.txt")
|| die "Can't write to random.txt, $!";
my @random = ();
while (scalar @random != 200) {
my $num = int(rand(200));
push (@random, $num) unless grep {/^$num$/} @random;
}
for (@random) {
print OUT "$_\n";
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯