如何在Perl中使用字符串作为种子生成N位随机数
我正在寻找一种方法来生成一个4位随机数使用文件路径作为输入。我试图为我机器中的每个软件安装指定唯一的名称,名称为如何在Perl中使用字符串作为种子生成N位随机数,perl,random,seed,Perl,Random,Seed,我正在寻找一种方法来生成一个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;