如何使用字符串作为Perl中的种子生成N位随机数

时间:2012-01-05 12:57:47

标签: perl random seed

我正在寻找一种使用文件路径作为输入生成4位随机数的方法。我正在尝试为我的计算机中的每个软件安装命名,名称为software_product_name + 4 digit random number。安装两次相同的软件是非常罕见的,但如果是这种情况,我不想最终使用相同的名称。我有一个不同的方式来获取软件名称。

是否有一种有效的方法可以生成4位数的随机数,从而导致不同路径的数字不同?

2 个答案:

答案 0 :(得分:3)

#!/usr/bin/perl

print "Content-type: text/html\n\n";

my @Chars = ('1'..'9');
my $Length = 4;
my $Number = '';

for (1..$Length) {
$Number .= $Chars[int rand @Chars];
}

print $Number;

答案 1 :(得分:0)

如果你考虑一下,你不能这样做,你不应该这样做。您希望生成没有冲突的内容,以便区分不同的安装。您无法用四位数字区分无数个可能的路径。

听起来您的软件需要足够聪明,不要吹走现有目录并安装在用户定义的路径中。

或者,您只需生成任意随机数并检查它是否已被使用。所以你不关心这个数字究竟是什么,你不需要任何输入来生成它。