【问题标题】:Trouble when generating an array of random values生成随机值数组时出现问题
【发布时间】:2010-12-06 02:53:31
【问题描述】:

我正在使用以下代码生成一个介于 0 和 2 之间的随机数数组:

    for ($j = 0; $j < 60; $j++) {
       for ($i = 0; $i < 100; $i++) {
                $value = rand(0,2);
                $DBH->query("INSERT INTO map (x, y, value) VALUES($i, $j, $value);");
    }

我发现奇怪的是,正如您在这里看到的那样,行是随机的,但它们会重复:

22121000210211220022122200120200122000122121 22121000210211220022122200120200122000122121 22121000210211220022122200120200122000122121 22121000210211220022122200120200122000122121 22121000210211220022122200120200122000122121

怎样才能避免呢?

【问题讨论】:

    标签: php arrays random


    【解决方案1】:

    您可能希望使用srand 明确地为您的生成器播种,例如srand(time())(请注意,srand 链接有比仅使用时间更好的播种示例,这取决于您需要的随机性,我想)。

    失败了

    • 您可以尝试使用mt_randmt_srand
    • 您始终可以使用 MySQL 的 rand 函数来生成数字作为解决方法。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-22
    • 2018-10-11
    • 1970-01-01
    • 2023-04-02
    • 2016-05-26
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多