За последние 24 часа нас посетили 21246 программистов и 1662 робота. Сейчас ищут 1084 программиста ...

Среднеквадратическое отклонение у массива

Тема в разделе "PHP для новичков", создана пользователем Artur_hopf, 5 дек 2018.

  1. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    Добрый день. Есть примерно такой массив:
    PHP:
    1. (
    2.     [0] => 84
    3.     [1] => 85
    4.     [2] => 84
    5.     [3] => 85
    6.     [4] => 84
    7.     [5] => 85
    8.     [6] => 100
    9.     [7] => 91
    10.     [8] => 85
    11.     [9] => 85
    12. )
    Как найти у него среднеквадратическое отклонение в php?

    На javascript это делалось так:
    Код (Javascript):
    1. var mean= array.reduce(function(a, b) { return a+b; })/array.length;
    2. var std_deviation=Math.sqrt(array.reduce(function(a, b) {
    3.       var dev = b - mean;
    4.       return a+dev*dev;
    5. })/array.length);
    В php пока что нашел сумму массива и среднее значение, а дальше как то не пойму:
    PHP:
    1. $summ = array_sum($array);
    2. $mean = $summ/count($array);
     
  2. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    Нашел на просторах, вроде работает.
    Может кому нужно будет:
    PHP:
    1. $mean = array_sum($array) / count($array);
    2. $var = 0.0;
    3. foreach ($array as $i){
    4.     $var += pow($i - $mean, 2);
    5. }
    6. $size = count($array) - 1;
    7. return (float) sqrt($var)/sqrt($size);