Фильтрация аномалий датчиков

Просмотр в формате PDF

Submit solution


Очки: 100
Ограничение по времени: 1.0s
Ограничение по памяти: 64M

Автор:
Problem type
Allowed languages
C++, Python

Первая олимпиада Олмат.Программирование. 23.02.26

Тема: Искусственный интеллект

Уровень: Новичок

📜 Первая находка

В архивах древней вычислительной станции вы находите прототип одной из первых систем интеллектуального мониторинга.

Эта система наблюдала за окружающей средой: температурой, давлением, уровнем излучения. Инженеры того времени только начинали внедрять алгоритмы искусственного интеллекта — простые, но гениальные по своей идее.

Их метод был удивительно лаконичным:

Если измерение слишком сильно отличается от среднего значения, его следует считать аномалией.

Перед вами — восстановленный алгоритм этой древней технологии. Вам предстоит воспроизвести его работу.


🧠 Немного о технологии

В реальных системах мониторинга данные редко бывают идеально стабильными.

Возникают:

  • случайные шумы,
  • ошибки датчиков,
  • внешние помехи,
  • резкие скачки сигнала.

Такие значения называют выбросами (аномалиями).

📌 Что такое выброс?

Выброс — это значение, которое значительно отличается от среднего уровня данных.

В задачах промышленной аналитики это может означать:

  • неисправность оборудования,
  • резкое изменение среды,
  • начало аварийной ситуации,
  • ошибку измерения.

Даже простейшие системы ИИ начинают анализ именно с поиска выбросов.


⚙️ Алгоритм обнаружения аномалий

Система использует правило:

  1. Вычислить среднее арифметическое всех измерений.
  2. Для каждого значения определить, насколько оно отличается от среднего.
  3. Если разница по модулю больше заданного порога T, значение считается аномальным.

Формально:

Измерение x является аномалией, если

|x - mean| > T

где mean — среднее всех элементов массива.


📌 Задача

Дан массив показаний датчика и число T.

Необходимо определить, сколько измерений являются аномальными согласно описанному алгоритму.


Эта задача — первый шаг в мире анализа данных. Даже самые сложные современные системы машинного обучения начинают с простых идей.


📥 Формат входных данных

  • В первой строке дано целое число n — количество измерений.
  • Во второй строке записаны n вещественных чисел — показания датчика.
  • В третьей строке дано вещественное число T — допустимое отклонение от среднего.
Ограничения
  • 1 ≤ n ≤ 10^5
  • Значения измерений и T — вещественные числа по модулю не превышающие 10^6

📤 Формат выходных данных

Выведите одно целое число — количество аномальных измерений.

📘 Примеры

Пример 1

Входные данные:

5
10.000000 11.000000 12.000000 13.000000 50.000000
5.000000

Выходные данные:

5

Пример 2

Входные данные:

4
1.000000 2.000000 3.000000 4.000000
1000.000000

Выходные данные:

0

Пример 3

Входные данные:

3
100.000000 0.000000 100.000000
10.000000

Выходные данные:

3

Комментарии

Еще нет ни одного комментария.