javascript Math.random()的PHP等价物

javascript Math.random()的PHP等价物,php,javascript,random,time,Php,Javascript,Random,Time,我需要一个PHP函数来生成与javascript Math.random()相同的随机数,并使用相同的种子 MDN关于数学。随机() 随机数生成器从当前时间开始播种,如中所示 爪哇 据我所知,PHP的rand()生成如下内容: srand( time() ); // I use time as seed, like javascript does echo rand(); Output: 827382 javascript似乎以自己的方式生成随机数: Math.random(); Output

我需要一个PHP函数来生成与javascript Math.random()相同的随机数,并使用相同的种子

MDN关于数学。随机()

随机数生成器从当前时间开始播种,如中所示 爪哇

据我所知,PHP的rand()生成如下内容:

srand( time() ); // I use time as seed, like javascript does
echo rand();
Output: 827382
javascript似乎以自己的方式生成随机数:

Math.random(); Output: 0.802392144203139
我需要与math.random()等效的PHP代码,而不是新的javascript代码。我无法更改javascript。

您可以尝试:

function random () {
    return (float)("0." . rand(1e15, 999999999999999));
}
甚至:

function random () {
   return rand(1e15, 999999999999999) / 1e15;
}

然而,@elclanrs的解决方案似乎简单得多。我试过了。

您可以使用返回值的函数:

PHP
函数随机(){
返回(浮点)rand()/(浮点)getrandmax();
}
//产生
// 0.85552537614063
// 0.23554185613575
// 0.025269325846126
// 0.016418958098086

JavaScript
var random=函数(){
返回Math.random();
};
//产生
// 0.6855146484449506
// 0.910828611580655
// 0.46277225855737925
// 0.6367355801630765
@埃尔克兰斯的解决方案更简单,不需要演员的回报


更新

关于PHP
mt_rand()
rand()
之间的区别,这里有一个很好的问题:

Javascript的Math.random给出了一个介于0和1之间的随机数。零是正确的输出,但不应包括1@thiagobraga的答案可以给出1作为输出。我的解决办法是:

function random(){
    return mt_rand() / (mt_getrandmax() + 1);
}

这将给出一个介于0和0之间的随机数。999999953434。

它是否从当前时间开始播种?是否希望能够预测随机数?
mt_rand()/mt_getrandmax()
。它必须是当前unix时间的种子。谢谢@elclanrs,它可以工作了!