如何从随机数计算最小值,最大值和平均值?

时间:2018-11-30 11:52:41

标签: php random while-loop

我有以下代码:

<?php
echo "<p>Exercise 5:</p>";

echo "Numbers: ";

$random = 0;

while ($random < 10) {
    $rand = rand(2, 80);
    echo "$rand";

    $random = $random + 1;

    if ($random < 10) {
     echo ", ";
    };
}

echo "<br><br>Min value: <br>";
echo "Max value: <br>";
echo "Average value: <br>";
?>

如何计算10个数字的最小值,最大值和平均值?

$min = min($rand)不起作用...
$max = max($rand)也不起作用...

2 个答案:

答案 0 :(得分:1)

$rand是单个值,单个值的最小值无关紧要。 Min将数组作为参数(或多个值),因此请将您的值保存在数组中,例如这样。

$array = array();

while($random < 10) {
    $rand = rand(2, 80);
    $array[] = $rand;
    $random++; // short for random = random + 1
}

echo min($array);

最大也可以使用

此外,平均值=总和/计数,您在PHP中具有array_sumcount函数,我让您知道如何做到这一点。

编辑:奥古斯丁关于零除是正确的。除以变量时,请考虑添加条件。

答案 1 :(得分:0)

一个被零除的解决方案可能是:

$random = 0;
$numbers = array();
while ($random < 10) {
    $rand = rand(2, 80);
    echo "$rand";

    $numbers[] = $rand;

   $random ++;
}

$min = min($numbers);
$max = max($numbers);
if($totalNumbers = count($numbers) > 0) {
    $average = array_sum($numbers) / count($numbers);
}else{
    $average = 0;
}


echo "<br><br>Min value: $min <br>";
echo "Max value: $max <br>";
echo "Average value: $average <br>";

我不明白为什么min或max不起作用,但是在这种情况下,您可以创建自定义的max min函数:

function customMaxMin($numbers)
{

    $max = 0;
    $min = 0;

    foreach ($numbers as $number) {

        $max = $number;
        $min = $number;

        if ($max > $number) {
            $max = $number;
        }
        if ($min < $number) {
            $min = $number;
        }

    }


    return array('max' => $max, 'min' => $min);

}