查看下面的代码,我知道我们有一个数组$r
。 for循环的计算结果为true
,并转到rand
函数。 rand
函数生成0到100,000之间的数字。
然后if
- 语句检查生成的数字是否小于或等于10.
最后一部分令我感到困惑,因为我认为如果生成的数字少于10,那么它会增加1。
有人可以解释一下这段代码。谢谢。
<?php
$r = array(0,0,0,0,0,0,0,0,0,0,0);
for ($i=0;$i<1000000;$i++) {
$n = rand(0,100000);
if ($n<=10) {
$r[$n]++;
}
}
print_r($r);
?>
答案 0 :(得分:0)
它向每个rand给出的数字(0到10)对应的数组元素添加一个小于或等于10的数据元素。
基本上你所看到的是随机数分布的演示。该程序将显示您在分发中的前11个数字中获得的命中数,而不是所有数据(这将是一个非常大的数组)。
在完全相等的分布中,每个数组元素得到1。但由于我们处理随机数,实际结果通常会有所不同。
答案 1 :(得分:0)
“我认为如果生成的数字小于10,那么它会增加1。”
不是不要在ID <{1}}的生成的号码中添加1,但 DOES 在{{1}添加1索引为$n
的数组元素。
例如,如果在第一次循环迭代中,您将获得$r
,那么$n
数组将如下所示:
$n = 4
这是因为$r
在这种情况下意味着$r = array(0,0,0,0,1,0,0,0,0,0,0);
,它是{em>增量$r[$n]++;
,等于
$r[4]++
或
$r[4]
$r[4]+=1
不会在一次迭代中更改,但$r[4] = $r[4]+1
。
答案 2 :(得分:0)
如果数字小于10,则它会向数组$r
中的相应索引添加一个。
这意味着我们计算每个数字小于10的次数。
示例:在循环结束时,$r[3]
值得我们绘制数字的时间3