【发布时间】:2011-04-19 19:23:37
【问题描述】:
我一直在使用 mt_rand(10,100) 来获取 10 到 100 之间的随机数,但它每次都给我 74。
这就是我正在使用的东西
$success=mt_rand(10,100);
有什么想法吗?我需要以某种方式播种吗?提前致谢。
---编辑---
我刚试过这个
srand(microtime());
$success=rand(10,100);
每次都给出相同的答案,47。
---编辑---
这就是全部
srand(microtime());
$success=rand(10,100);
echo $success;
if ($success == 100) {
$displayline="You succeeded";
session_register("displayline");
header("location:userhome.php");
}
【问题讨论】:
-
您可能需要显示更多代码。正如我预期的那样,我在循环中运行它并收到许多不同的随机数。事实上,在 50 个循环中,我没有收到 1 个
74。这是在 PHP 5.3 上 -
您使用的是哪个版本的 PHP?您是否手动为生成器播种?
-
我认为它正在某个地方被重置。您是否有忘记删除的测试用例?
-
我必须同意@nikic,我敢说你用固定号码拨打
mt_srand。从 php v4.2.0 开始,不需要为随机数生成器播种。 -
潜在相关:xkcd.com/221