Php rand vs Perl rand

bhu*_*ups 2 php random perl

我试图将一段代码从perl移植到php.perl代码段是akamai视频点播链接生成脚本的一部分.该脚本根据视频文件的位置/ URL生成种子(对于单个URL,该种子将始终保持不变).然后它用于生成流的序列ID(基本上是使用种子的1到2000之间的随机数).这是perl代码.

$seed=6718;
srand($seed);
print(int(rand(1999)) + 1); // return 442 every time
Run Code Online (Sandbox Code Playgroud) 转换后的PHP代码是:
$seed=6718;
srand($seed);
echo(rand(0, 1999) + 1); //returns 155 every time
Run Code Online (Sandbox Code Playgroud) php rand的行为与perl不同吗?

yst*_*sth 8

是.你不能依赖他们的算法是一样的.对于perl,使用哪个rand取决于你为perl构建的平台.

使用特定算法可能会有更多的运气; 例如,Mersenne Twister看起来可用于PHPPerl.更新:尝试它会产生不同的结果,所以至少一个人不会这样做.

更新2:根据您显示的perl数字,您的perl正在使用drand48库; 我不知道这是否适用于PHP,谷歌没有帮助.