我正在研究这个问题很长一段时间,但我不知道如何解决这个问题:
我有一个包含50个随机数的列表,当此后的10个后续数字(例如数字11-20或数字24-33)达到平均值x时,我想收到通知。
50个数字位于(HTML)表的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;
Largest set of 10 numbers is: 10, 11, 12, 13, 14, 15, 14, 13, 12, 11
Average of: 12.5
然后,您可以将最大平均值与阈值进行比较,并通知自己。