|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.11.2021, 16:55 | #1 |
Новичок
Джуниор
Регистрация: 15.11.2021
Сообщений: 1
|
Помогите решить, при этом объяснив почему именно так делается
Фильтрация данных
[данные; фильтрация] При любых измерениях физических величин используются измерительные приборы, каждый из которых имеет некоторую погрешность. Для минимизации этой погрешности применяются различные методы фильтрации. Одним из самых простых является метод простого скользящего среднего (SMA, Simple Moving Average). Входом такого фильтра является необработанный сигнал (в виде массива значений) и один единственный параметр – размер окна (значение этого параметра всегда целое нечётное число). Выходом является массив значений фильтрованного сигнала, элементы которого вычисляются по формуле: y i = 1 N i + ( N − 1 ) / 2 ∑ i − ( N − 1 ) / 2 x i , где N – размер окна; x i – элемент необработанного сигнала; y i – элемент фильтрованного сигнала. Таким образом, вычисляется среднее арифметическое N элементов вокруг i -ого элемента исходного массива. На рисунке приведён пример расчёта элементов массива фильтрованных данных с размером окна N = 5 . При таком подходе возникает проблема с несколькими элементами в начале и в конце исходного массива. Например, если N = 5 , то для 0-го и 1-го элементов мы просто не сможем выбрать 5 элементов вокруг них для вычисления среднего арифметического. Существует несколько способов учёта таких элементов. Первый, и самый простой, отбросить эти элементы (в этом случае длина массива фильтрованных данных будет на N − 1 меньше, чем длина исходного массива). Второй способ – оставить эти элементы без изменений и просто перенести их в массив с фильтрованными данными. Третий способ – фильтровать эти элементы с уменьшенным размером окна. Напишите программу на языке C++ или Python, осуществляющую фильтрацию входного массива данных методом простого скользящего среднего. Крайние значения входного массива должны быть учтены без изменений. Формат входных данных На вход программы первой строчкой поступает размер окна – целое нечетное число, не превышающее размер массива входного сигнала. На второй строчке идет строка чисел входного сигнала, округленных до 3-го знака после запятой и разделенных пробелами. Количество значений входного сигнала может быть различным, но не больше 25. Формат выходных данных Необходимо вывести на стандартный вывод отфильтрованный массив данных. Все значения должны быть выведены в одну строку через пробел и округлены до трех знаков после запятой по правилам математического округления. Количество значений в выходной строке всегда должно совпадать с количеством значений входного сигнала. Лимит по времени: 5 сек |
20.11.2021, 13:44 | #2 |
Форумчанин
Регистрация: 20.12.2016
Сообщений: 270
|
Для таких авторов есть отдельный
формошлеп.рф
witech.su |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Принципы работы потоков - нужно сделать так чтобы все потоки работали с переменной ID по порядку, но при этом не мешали работе друг друга. | Vlad2891 | Общие вопросы Delphi | 6 | 25.12.2019 10:12 |
Почему работает именно так | AlexKain | HTML и CSS | 3 | 17.12.2015 22:36 |
Помогите пожалуйста решить, ничего в этом не понимаю | KatarinaDe | Lazarus, Free Pascal, CodeTyphon | 12 | 11.11.2015 09:39 |
как сделать вывод категории так чтоб он выводил сразу именно ту категорию которая будет принята при добавлении товара | влдаислав | PHP | 7 | 28.01.2015 23:07 |
почему так? помогите решить | evgenrpo | Общие вопросы C/C++ | 6 | 31.05.2009 22:43 |