perl 生成float随机数

作者&投稿:晋菊 (若有异议请与网页底部的电邮联系)
使用perl 生成随机数~

有一个小错误,输出的当是$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
"; ######应该是"print OUT "$num
";
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
";
$p++;
last if($p==200);
}
close OUT; #关闭文件

my $m = rand_num(20);print "@$m";sub rand_num { my $n = shift; my %h; my @h; while (@h < $n) { my $r = int rand(100000); push @h, $r if (!exists $h{$r}); $h{$r} = 1; } [@h];}

看看下面的代码,能够得到你想要的东西:

$e=rand();
$f=38-rand(76);
$r=$e*10**$f;
print $r;

明白道理吗?首先生成一个0~1的数作为底数,然后生成一个-38~+38的数作为指数,你可以适当调整产生任意需要是数据。


上海市13235813730: perl 生成float随机数 -
莱滕域大: 看看下面的代码,能够得到你想要的东西:$e=rand(); $f=38-rand(76); $r=$e*10**$f; print $r;明白道理吗?首先生成一个0~1的数作为底数,然后生成一个-38~+38的数作为指数,你可以适当调整产生任意需要是数据.

上海市13235813730: perl 生成随机数 含float数 如1 - 10000,其中含整数和小数 -
莱滕域大: my $random = rand(10000);

上海市13235813730: C++如何生成一个float随机数组 -
莱滕域大: int main() { srand((unsigned)time(NULL) ); float f[10]; float ff; for(int i=0;i { ff = rand()%100 / 3.3; f[i]=ff; } for(int j=0;jcout }

上海市13235813730: Java怎么产生随机数 -
莱滕域大: 一、利用random方法来生成随机数. 在Java语言中生成随机数相对来说比较简单,因为有一个现成的方法可以使用.在Math类中,Java语言提供了一个叫做random的方法.通过这个方法可以让系统产生随机数. 二、通过Random类来生成随...

上海市13235813730: java中,如何产生0到0.1之间的类型为float的随机数 -
莱滕域大: import java.util.Random; //导入Random类float floatNumber = random.nextFloat()//获取一个浮点数(0-1);要想取得0-0.1: floatNumber/10 就OK了

上海市13235813730: perl如何用rand函数随机获得1到10 这10个数字? -
莱滕域大: $number = 1 + int(rand(10)); print $number.$/;

上海市13235813730: java中,如何产生60.00到80.00之间的类型为float的随机数 -
莱滕域大: 你可以使用java.util.Random里面的nextFloat()方法自己写个一个方法来实现.java里面的这个:public float nextFloat() 返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的float值.可以基于此方法自己封装新方法.

上海市13235813730: 如何在java中产生随机数? -
莱滕域大: 1. 在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有. 2. 在java.util这个包里面提供了一个...

上海市13235813730: perl如何用rand函数随机获得0到9 这10个数字? -
莱滕域大: $num=int(rand(10));

上海市13235813730: C#中的随机数生成器的使用
莱滕域大: Random rd = new Random(); //实例化 weight=(float)rd.NextDouble(); //生成下一个double数并转化float,且赋值给weight return weight //返回weight

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网