【问题标题】:To show looping for two looping in random and cross在随机和交叉中显示两个循环的循环
【发布时间】:2016-05-14 08:28:45
【问题描述】:

我有循环问题,我想播放随机播放以循环播放

代码:

            for ($i=0; $i <= 10; $i++) { 
            $result = $i;
            echo "$result";
            echo "<br>";
            }
    //----------------------------------------------
            echo "<hr width='100%'>";
    //----------------------------------------------
            $s=$result;
            $c=$result;
            $test=array_fill($s, $c, 0);
            $ts=microtime(true);

            for ($i=0; $i <= 10; $i++) { 
                $selection1=mt_rand($s, $c);
                $selection2=mt_rand($s, $c);

                echo "$selection1 and $selection1";
                echo "<br>";
            }

我想要结果: example result

随机之后我想要交叉循环 Example result

#including completion of a genetic algorithm  

【问题讨论】:

  • 欢迎来到 Stack Overflow!请参阅How to AskThe perfect question
  • 正如您在上一个问题中已经提到的那样:stackoverflow.com/q/37220786/3933332 $result 在您的 for 循环运行后将是 10。 (顺便说一句:在 for 循环中您的变量周围的引号是不必要的)。因此,之后您将 10 分配给 $s$c。 (同时,您创建一个从索引 10 开始的数组,其中包含 10 个值为 0 的元素)。在下一个 for 循环中,您创建 10 到 10 之间的随机值,并且作为随机值,它们是随机的。所以大多数情况下你会得到 10 个!
  • 我还是一头雾水,如果我想要上面的结果我应该怎么做,请附上编码的例子先生?

标签: php if-statement for-loop


【解决方案1】:

mt_rand 返回您提供的第一个值和最后一个值之间的值。在您的代码中,当 $s 和 $c 都设置为 10 时,您正在调用 mt_rand($s, $c),因此它们将始终返回 10。

我无法理解您想要什么,所以让我们看看您的代码,看看发生了什么。

        for ($i=0; $i <= 10; $i++) { 
            $result = $i;
            echo "$result";
            echo "<br>";
        }

我们在 0 到 10 之间循环,每次都将循环号存储为 $result

//----------------------------------------------
        echo "<hr width='100%'>";
//----------------------------------------------
        $s=$result;
        $c=$result;
        $test=array_fill($s, $c, 0);
        $ts=microtime(true);

我们的循环已经结束,我们继续前进。此代码执行一次。由于$result 在循环结束时是10,因此$s$c 将始终设置为10。

        for ($i=0; $i <= 10; $i++) { 
            $selection1=mt_rand($s, $c);
            $selection2=mt_rand($s, $c);

            echo "$selection1 and $selection1";
            echo "<br>";
        }

我们现在将再次在 0 和 10 之间循环。 mt_rand() 将始终返回介于 $s$c 之间的值,该值将始终设置为 1010,因此将始终为 10。我们只会回显10 and 10 10 次。

我不确定您在寻找什么,所以我将把解释留在那里。

【讨论】:

  • 感谢解释,我还是一头雾水,如果我想要上面的结果我应该怎么做,请附上编码的例子先生?请包括你的方式
  • 这组$s和$c怎么这么看重随机,高手还是没有其他办法解决这个问题?有我想要的输出?
  • 如果您无法理解为什么 mt_rand() 在解释后总是输出 10,那么您可能正试图接受一个对您的技能水平来说太难的挑战。这是一个非常简单的问题。如果您需要有人为您编写代码,请考虑雇用某人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-04
  • 2010-11-26
  • 1970-01-01
  • 2018-10-01
  • 1970-01-01
  • 2013-12-24
  • 2015-09-03
相关资源
最近更新 更多