【问题标题】:Why mt_rand generating same number repeatedly?为什么 mt_rand 重复生成相同的数字?
【发布时间】:2015-09-15 02:31:21
【问题描述】:

我有一个简单的代码:mt_rand(1,25);

它一遍又一遍地生成相同的数字。很多次才会最终生成一个新号码。

6 个月前,它运行良好。

    $X = mt_rand(1,25) ;
     $AR=array(14, 126, 28, .......);
     $F = $AR[$X];

然后 $F 用于数学计算...

$X 值是在每次页面刷新或重新访问时保持不变的值。

在行动中查看@Www.math-flashcards.com

在第二行按钮上选择“Numbers Plus 9”。输入一个名称,然后代码应该每次生成不同的抽认卡。

【问题讨论】:

  • 同一个数可以无限生成1次,仍然是完全随机选择的
  • 无论如何,你需要展示你实际使用它的方式,因为那是问题,而不是功能
  • 你在打电话给mt_srand吗?这用于初始化seed。除非您想要相同的数字序列,否则您不应该调用它。
  • 让我猜猜,您使用的是古老的(5.2.X?)版本的 PHP?升级到 5.4 或更高版本,我认为你会很安全.. -- php.net/manual/en/function.mt-srand.php changelog

标签: php random


【解决方案1】:

您的代码只调用了一次mt_rand()。如果您在循环中使用它,请在循环中包含其他语句。

可能的陷阱:

  • 您正在循环中的其他地方调用 mt_srand(),这会重置循环中每次的随机状态。

  • 您正在比较脚本本身的连续执行,并且您的 PHP 版本已过期(所有仍受支持的 PHP 版本最初都会在脚本执行时看到具有随机值的随机状态)。

【讨论】:

    猜你喜欢
    • 2014-11-13
    • 2019-06-14
    • 1970-01-01
    • 2020-12-13
    • 2020-06-23
    • 2021-07-11
    • 1970-01-01
    • 2013-10-22
    • 2015-07-29
    相关资源
    最近更新 更多