0

30.000 個の整数値を持つ配列があり、最大の 60 個の連続要素ブロックを計算する必要があります。私はこれを行いましたが、動作しますが、それを行うためのより良い方法があるかどうかはわかりません。現在、30.000 ポイントで約 4 秒かかります。

$values = array();
$max = 0;

for ($i = 0; $i < 30000; $i++) {
    $values[] = rand(0, 1000);
}

for ($i = 0; $i < 29940; $i++) {
    $subValues = array_slice($values, $i, 60);
    $sum = array_sum($subValues);
    $avg = $sum / 60;
    $max = ($avg > $max) ? $avg : $max;
}

$maxValues = array_slice($values, $max, 60);
4

0 に答える 0