首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php初学者,需要一些解释吗?

问php初学者,需要一些解释吗?
EN

Stack Overflow用户
提问于 2014-02-02 17:04:16
回答 3查看 56关注 0票数 0

看看下面的代码,我知道我们有一个数组$r。for循环的计算结果为true,并转到rand函数。rand函数生成一个介于0和100,000之间的数字。然后,if-statement检查生成的数字是否小于或等于10。

最后一部分让我感到困惑,因为我认为如果生成的数字小于10,那么它会将1加到它上面。

有人能解释一下这段代码吗。谢谢。

代码语言:javascript
复制
<?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); 
?>
EN

回答 3

Stack Overflow用户

发布于 2014-02-02 17:07:57

它将与每个兰特给出的小于或等于10的数字(0到10)对应的数组元素加1。

基本上,您看到的是一个随机数分布的演示。该程序将显示分布中前11个数字的点击数,而不是所有数字(这将是一个相当大的数组)。

在完全相等的分布中,您将在每个数组元素中获得1。但由于我们处理的是随机数,实际结果通常会有所不同。

票数 0
EN

Stack Overflow用户

发布于 2014-02-02 17:08:29

“我认为,如果生成的数字小于10,则会将其加1。”

No it DO NOT add 1 to generated number with id $n,但it DO add 1 to $r array element with index $n。

例如,如果在第一次循环迭代中得到$n = 4,那么$r数组将如下所示:

代码语言:javascript
复制
$r = array(0,0,0,0,1,0,0,0,0,0,0);

这是因为本例中的$r[$n]++;表示$r[4]++,它是$r[4]的增量,等于

代码语言:javascript
复制
$r[4]+=1

或

代码语言:javascript
复制
$r[4] = $r[4]+1

$n 不会在一次迭代中被更改,但$r 是。

票数 0
EN

Stack Overflow用户

发布于 2014-02-02 17:09:12

如果数字小于10,则将数组$r中的相应索引加1。

这意味着对于每个数字,我们都会计算小于10的次数。

示例:在循环结束时,$r[3]值等于我们绘制数字3的次数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21508810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档