gpt4 book ai didi

perl - rand() 在 perl 中不是那么随机

转载 作者:行者123 更新时间:2023-12-04 13:29:24 25 4
gpt4 key购买 nike

我有一个 Perl 脚本,它给了我一个由随机数字、字母和一些特殊字符组成的 50 个字符的字符串。我正在将它们输入数据库。现在,考虑到字符串的长度和字符的数量,我认为不会轻易创建重复项。

这是创建字符串的漂亮代码块:

my $random_id='';
my @c = ( "A" .. "Z", "a" .. "z", 0 .. 9, qw(! @ $ % ^ & *) );
$random_id = join '', map $c[rand @c] , 1 .. 50;

它产生如下字符串:

C1Qt8L7E7QUD%lkxnh9yjZ2njF0iMj!1o^4DmTbVNhQB9%dke@



问题是它会不时地在唯一的字符串中复制一个精确的字符串,并且在某些字符串上不止一次。这是20个字符串。这很奇怪。我可以解决它并找到解决方案......但这让我有点困惑。想知道为什么。有人有想法吗?

最佳答案

您需要使用 srand 播种随机数生成器,否则它将生成相同的数字系列。

http://perldoc.perl.org/functions/srand.html

编辑:

根据 url 上的文档,如果 perl 版本在 5.004 之前,则它不会自动调用该函数。因此,请检查您正在运行的 perl 版本。

关于perl - rand() 在 perl 中不是那么随机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4363350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com