1.9 KiB
1.9 KiB
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
5a23c84252665b21eecc7e03 | Deviazione cumulativa standard | 5 | 302240 | cumulative-standard-deviation |
--description--
Scrivi una funzione che prende un array di numeri come parametro e restituisce la [deviazione standard](https://en.wikipedia.org/wiki/Standard Deviation) della serie.
--hints--
standardDeviation
dovrebbe essere una funzione.
assert(typeof standardDeviation == 'function');
standardDeviation([2, 4, 4, 4, 5, 5, 7, 9])
dovrebbe restituire un numero.
assert(typeof standardDeviation([2, 4, 4, 4, 5, 5, 7, 9]) == 'number');
standardDeviation([2, 4, 4, 4, 5, 5, 7, 9])
dovrebbe restituire 2
.
assert.equal(standardDeviation([2, 4, 4, 4, 5, 5, 7, 9]), 2);
standardDeviation([600, 470, 170, 430, 300])
dovrebbe restituire 147.323
.
assert.equal(standardDeviation([600, 470, 170, 430, 300]), 147.323);
standardDeviation([75, 83, 96, 100, 121, 125])
dovrebbe restituire 18.239
.
assert.equal(standardDeviation([75, 83, 96, 100, 121, 125]), 18.239);
standardDeviation([23, 37, 45, 49, 56, 63, 63, 70, 72, 82])
dovrebbe restituire 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])
dovrebbe restituire 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;
}