Files
freeCodeCamp/curriculum/challenges/espanol/22-rosetta-code/rosetta-code-challenges/cumulative-standard-deviation.md
2024-01-24 19:52:36 +01:00

3.1 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5a23c84252665b21eecc7e03 Desviación estándar acumulada 1 302240 cumulative-standard-deviation

--description--

Suppose that the entire population of interest is eight students in a particular class. For a finite set of numbers, the population standard deviation is found by taking the square root of the average of the squared deviations of the values subtracted from their average value. The marks of a class of eight students (that is, a statistical population) are the following eight values:

2, 4, 4, 4, 5, 5, 7, 9

Estos ocho puntos de datos tienen la media (media) de 5:

\mu ={\frac {2+4+4+4+5+5+7+9}{8}}={\frac {40}{8}}=5

Primero, calcular las desviaciones de cada punto de datos de la media y cuadra el resultado de cada una:

Deviations of each data Cuadra el resultado
(2-5)^{2}=(-3)^{2}=9 (5-5)^{2}=0^{2}=0
(4-5)^{2}=(-1)^{2}=1 (5-5)^{2}=0^{2}=0
(4-5)^{2}=(-1)^{2}=1 (7-5)^{2}=2^{2}=4
(4-5)^{2}=(-1)^{2}=1 (9-5)^{2}=4^{2}=16

La variación es la media de estos valores:

\sigma ^{2}={\frac {9+1+1+1+0+0+4+16}{8}}={\frac {32}{8}}=4

y la desviación del estándar de población es igual a la raíz cuadrada de la varianza:

\sigma ={\sqrt {4}}=2

Escriba una función que tome una matríz de números como parámetros y devuelva la desviación estándar de las series.

--hints--

standardDeviation debe ser una función.

assert(typeof standardDeviation == 'function');

standardDeviation([2, 4, 4, 4, 5, 5, 7, 9]) debe devolver un número.

assert(typeof standardDeviation([2, 4, 4, 4, 5, 5, 7, 9]) == 'number');

standardDeviation([2, 4, 4, 4, 5, 5, 7, 9]) debe devolver 2.

assert.equal(standardDeviation([2, 4, 4, 4, 5, 5, 7, 9]), 2);

standardDeviation([600, 470, 170, 430, 300]) debe devolver 147.323.

assert.equal(standardDeviation([600, 470, 170, 430, 300]), 147.323);

standardDeviation([75, 83, 96, 100, 121, 125]) debe devolver 18.239.

assert.equal(standardDeviation([75, 83, 96, 100, 121, 125]), 18.239);

standardDeviation([23, 37, 45, 49, 56, 63, 63, 70, 72, 82]) debe devolver 16.87.

assert.equal(
  standardDeviation([23, 37, 45, 49, 56, 63, 63, 70, 72, 82]),
  16.87
);

standardDeviation([271, 354, 296, 301, 333, 326, 285, 298, 327, 316, 287, 314]) debe devolver 22.631.

assert.equal(
  standardDeviation([
    271,
    354,
    296,
    301,
    333,
    326,
    285,
    298,
    327,
    316,
    287,
    314
  ]),
  22.631
);

--seed--

--seed-contents--

function standardDeviation(arr) {

}

--solutions--

function standardDeviation(arr) {
  var sum = 0,
    sum_sq = 0,
    n = arr.length;
  arr.forEach(function(e) {
    sum += e;
    sum_sq += e * e;
  });

  var std_dev = Math.sqrt(sum_sq / n - Math.pow(sum / n, 2));
  return Math.round(std_dev * 1000) / 1000;
}