freeCodeCamp/curriculum/challenges/english/08-coding-interview-prep/rosetta-code/averages-root-mean-square.e...

1.5 KiB

title id challengeType
Averages-Root mean square 594da033de4190850b893874 5

Description

Compute the Root mean square of the numbers 1 through 10 inclusive.

The root mean square is also known by its initials RMS (or rms), and as the quadratic mean.

The RMS is calculated as the mean of the squares of the numbers, square-rooted:

$$x_{\mathrm{rms}} = \sqrt {{{x_1}^2 + {x_2}^2 + \cdots + {x_n}^2} \over n}. $$

Instructions

Tests

tests:
  - text: <code>rms</code> is a function.
    testString: assert(typeof rms === 'function', '<code>rms</code> is a function.');
  - text: <code>rms([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])</code> should equal <code>6.2048368229954285</code>.
    testString: assert.equal(rms(arr1), answer1, '<code>rms([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])</code> should equal <code>6.2048368229954285</code>.');

Challenge Seed

function rms (arr) {
  // Good luck!
}

After Test

const arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const answer1 = 6.2048368229954285;

Solution

function rms (arr) {
  const sumOfSquares = arr.reduce((s, x) => s + x * x, 0);
  return Math.sqrt(sumOfSquares / arr.length);
}