PHP在50个随机数列表中查找10个后续数字的最大平均值

时间:2014-09-20 19:13:14

标签: php html sql

我正在研究这个问题很长一段时间,但我不知道如何解决这个问题:

我有一个包含50个随机数的列表,当此后的10个后续数字(例如数字11-20或数字24-33)达到平均值x时,我想收到通知。

50个数字位于(HTML)表的1行中,每个表位于不同的列中。

任何有想法如何开始的人?谢谢!

1 个答案:

答案 0 :(得分:2)

如果你的数字在一个数组中,你可以在10个块中循环遍历数组,然后找到最大平均值。

<?php

$numbers = array(1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3, 4, 5, 4, 3, 2, 1,
                 10, 11, 12, 13, 14, 15, 14, 13, 12, 11, 10, 11, 12, //large numbers here
                 1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3, 4, 5, 4, 3, 2, 1);

$number = 10; //numbers in a set

$max = 0;
$index = 0;

$size = sizeof($numbers) - $number;       
for ($i = 0; $i < $size; $i++) {
    $tmp = array_sum(array_slice($numbers, $i, $number)) / $number;
    if ($tmp > $max) {
        $max = $tmp;
        $index = $i;
    }
}

echo "Largest set of " . $number . " numbers is: " . implode(', ', array_slice($numbers, $index, $number)) . "\nAverage of: " . $max;

Output

Largest set of 10 numbers is: 10, 11, 12, 13, 14, 15, 14, 13, 12, 11
Average of: 12.5

然后,您可以将最大平均值与阈值进行比较,并通知自己。