Programa PHP para encontrar la desviación estándar de una array

Dada una serie de elementos. Necesitamos encontrar la desviación estándar de los elementos de la array en PHP.

Ejemplos:

Input : array(2, 3, 5, 6, 7)
Output : 1.5620499351813

Input : array(1, 2, 3, 4, 5)
Output : 1

El siguiente problema se puede resolver utilizando las funciones incorporadas de PHP . Las funciones incorporadas utilizadas para resolver el problema anterior son las siguientes:

  1. array_sum() : La función devuelve la suma de todos los elementos de una array.
  2. count() : esta función da el número de elementos actualmente presentes en la array dada.
  3. sqrt() : la función devuelve la raíz cuadrada del número dado.

Para calcular la desviación estándar, primero tenemos que calcular la varianza. La varianza se puede calcular como la suma de los cuadrados de las diferencias entre todos los números y las medias. Finalmente, para obtener la desviación estándar, usaremos la fórmula, √(varianza/nº_de_elementos).

A continuación se muestra la implementación en PHP para calcular la desviación estándar:

<?php
      
    // function to calculate the standard deviation
    // of array elements
    function Stand_Deviation($arr)
    {
        $num_of_elements = count($arr);
          
        $variance = 0.0;
          
                // calculating mean using array_sum() method
        $average = array_sum($arr)/$num_of_elements;
          
        foreach($arr as $i)
        {
            // sum of squares of differences between 
                        // all numbers and means.
            $variance += pow(($i - $average), 2);
        }
          
        return (float)sqrt($variance/$num_of_elements);
    }
      
    // Input array
    $arr = array(2, 3, 5, 6, 7);
      
    print_r(Stand_Deviation($arr));
      
?>

Producción:

1.8547236990991

Publicación traducida automáticamente

Artículo escrito por akash1295 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *