Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Perl中使用字符串作为种子生成N位随机数_Perl_Random_Seed - Fatal编程技术网

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

如何在Perl中使用字符串作为种子生成N位随机数,perl,random,seed,Perl,Random,Seed,我正在寻找一种方法来生成一个4位随机数使用文件路径作为输入。我试图为我机器中的每个软件安装指定唯一的名称,名称为软件\产品\名称+4位随机数。同一个软件安装两次是非常罕见的,但如果是这样的话,我不想以相同的名字结束。我有一种不同的方法来获取软件名 有没有一种有效的方法可以生成4位数的随机数,从而为不同的路径生成不同的数 如果你仔细想想,你不能这样做,也不应该这样做。您希望生成无冲突的内容,以便能够区分不同的安装。您将无法用四位数来区分无限多个可能的路径 听起来您的软件需要足够智能,以避免破坏现有

我正在寻找一种方法来生成一个4位随机数使用文件路径作为输入。我试图为我机器中的每个软件安装指定唯一的名称,名称为
软件\产品\名称
+
4位随机数
。同一个软件安装两次是非常罕见的,但如果是这样的话,我不想以相同的名字结束。我有一种不同的方法来获取软件名


有没有一种有效的方法可以生成4位数的随机数,从而为不同的路径生成不同的数

如果你仔细想想,你不能这样做,也不应该这样做。您希望生成无冲突的内容,以便能够区分不同的安装。您将无法用四位数来区分无限多个可能的路径

听起来您的软件需要足够智能,以避免破坏现有目录并安装在用户定义的路径中


或者,您只需生成任意随机数并检查它是否尚未使用。所以你不在乎这个数字到底是什么,你不需要任何输入来生成它

请通过显示您尝试过的内容来帮助我们。最简单的方法是散列路径名并获取结果mod 10000。为什么不使用递增数字而不是随机数字?
#!/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;