@Roman9333
React.js developer

Как выявить есть ли арифметическая или геометрическая прогрессия в массиве?

Есть задача: выявить есть ли в массиве геометрическая или арифметическая прогрессия. Если есть - вывести соответственно arifmetic/geometric, если нету вывести -1. Массив отсортирован.
  • Вопрос задан
  • 601 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Арифметическая, например:

const isArithmeticProgression = arr =>
  arr.length > 1
    ? new Set(arr.map((n, i, a) => n - a[i + 1]).slice(0, -1)).size === 1
    : !!arr.length;

// или

const isArithmeticProgression = arr =>
  !!arr.length && arr.every((n, i, a) => !i || (n - a[i - 1] === a[1] - a[0]));

Геометрическая проверяется аналогично.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы