Как добавить скользящую среднюю?

Скользящие средние, основанные на 5 числах этих выигрышных чисел, являются движущейся частью. Итак, если выигрышные номера: 3-4-5-6-7-8-4-5-6-33-23-12-5-1 Затем первая скользящая средняя основана на 3-4-5-6-7, разделенных на 5. Затем вторая скользящая средняя основана на 4-5-6-7-8, разделенных на 5. Затем третья скользящая средняя основана на 5-6-7-8-4, разделенных на 5.

Я попытался создать массив, но это не сработало.

<?php
$existing = [];
$win_numbers = [];
for ($rnd=1;$rnd<=250;$rnd++)
{
  $randoms[] = mt_rand(0,36);  // see this block for generating randoms
}

echo "Random Numbers:<br>";
echo implode('-', $randoms).PHP_EOL;

echo "<br><br>";

$i = 0;
foreach($randoms as $rnd){
   $i++; 
   if (in_array($rnd,$existing)){
       $win_numbers[] = $i;
       $i=1;
       $existing = [];
   }
   $existing[] = $rnd; 
}

echo "Win Numbers:<br>";
echo implode('-',$win_numbers);

echo "<br><br>";

echo "Moving Averages:<br>";



?>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
374
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете сделать это так, также его можно оптимизировать с помощью нескольких методов, таких как array_sum() и array_slice()

<?php
// Function to print moving average
function movingAverage($win_numbers, $average_for)  
{ 
    foreach($win_numbers as $key=>$value){
      $win_number_consecutive_5 = array_slice($win_numbers, $key, $average_for);
      if (count($win_number_consecutive_5) == $average_for) {
      $win_averages[] = array_sum($win_number_consecutive_5) / $average_for;
  }
    }
    return $win_averages;
} 

echo "Moving Averages:<br>";
$win_numbers = explode('-','3-4-5-6-7-8-4-5-6-33-23-12-5-1');
$average_for = 5;
echo implode('-',movingAverage($win_numbers, $average_for));
?>

РАБОЧАЯ ДЕМО:https://3v4l.org/GO0Ai

Он еще не обновляется на основе выигрышных номеров. Если я обновляю, он не обновляется.

Amro Awad 19.07.2019 20:16

Если вы зациклите массив с помощью цикла for и используете array_slice, вы можете получить скользящее среднее.

for($i=0;$i<count($randoms)-4;$i++){
    $avg[] = array_sum(array_slice($randoms, $i, 5))/5;
}

Пример: https://3v4l.org/XUdlP

Другие вопросы по теме