В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Гольник
Гольник
04.11.2020 21:18 •  Информатика

B. очистка данных ограничение времени: 1.0 секунды ограничение памяти: 64 мб прежде чем применить к данным методы машинного обучения, проводится процесс очистки данных. необходимость очистки связана с тем, что в данных могут быть аномальные элементы: дубли, ошибки ввода и выбросы. если очистка данных не будет выполнена, то методы анализа данных могут дать неправильный результат! рассмотрим интеллектуальную систему предсказания погоды. такая система постоянно получает данные о текущей температуре воздуха с множества метеостанций. каждая метеостанция передает последовательно данные о температуре в виде пары целых чисел. первое число – это время, которое измеряется количеством секунд с начала суток. второе число – это температура в градусах цельсия. очистка данных производится в три этапа. сначала удаляются дубли – когда информация об одном и том же времени измерения и той же температуре воздуха повторилась несколько раз подряд (первый элемент в такой последовательности одинаковых данных дублем не считается). после удаления дублей из последовательности удаляются ошибки ввода времени - когда время в новой паре не превосходит время в предыдущей паре или превышает количество секунд в сутках. на третьем этапе из последовательности удаляются выбросы – пары с аномальным значением температуры, когда измеренная температура по модулю больше 40 градусов или отличается от предыдущего значения более чем на 10 градусов. вам нужно написать программу, которая будет определять в исходной последовательности данных количество удаляемых дублей, выбросов и ошибок. можете считать, что самая первая пара в последовательности не относится к аномальным. исходные данные в первой строке входных данных записано целое число n – количество измерений (1 ≤ n ≤103). в следующих n строках записаны целые числа t и t, разделенные пробелом – время измерения и значение температуры воздуха. все числа по модулю не превосходят 109. результат выведите три целых числа, разделенных пробелами – количество дублей, ошибок ввода времени и выбросов в последовательности исходных данных. пример исходные данные результат 6 10 5 8 5 8 5 8 5 12 25 13 10 2 1 1 замечания 8 5 дублируется трижды. после удаления двух копий остается одна пара 8 5, которая является ошибкой ввода (т.к. время 8 меньше 10 из предыдущей пары). после ее удаления остается последовательность из трех пар 10 5, 12 25, 13 10, в которой 12 25 – выброс (t = 25 более чем на 10 превышает 5). после удаления выброса остается очищенная последовательность 10 5, 13 10 в этой есть тесты, в которых присутствуют только дубли (суммарно 20 ), ошибки ввода (также 20 ) и выбросы (еще 20 ). оставшиеся тесты включают разные типы аномальных элементов (40 ).

Показать ответ
Ответ:
Martishevska
Martishevska
09.10.2020 12:26
PascalABC.NET 3.4.2, сборка 1884 от 24.11.2018Внимание! Если программа не работает, обновите версию!

begin

 var n := ReadInteger;

 var L := new List<(integer, integer)>;

 loop n do

 begin

   L.Add(ReadInteger2)

 end;

 var k := L.Count;

 L := L.Distinct.ToList; // этап 1

 var k1 := L.Count;

 Print(k - k1);

 (k, k1) := (k1, 0); // этап 2

 var St := new Stack<integer>;

 var m := L.First[0]; // время

 for var i := 1 to k - 1 do

   if L[i][0] <= m then

   begin

     St.Push(i);

     Inc(k1)

   end

   else m := L[i][0];

 for var i := 1 to k1 do

   L.RemoveAt(St.Pop);

 Print(k1);

 (k, k1) := (L.Count, 0); // этап 3

 m := L.First[1]; // температура

 for var i := 1 to k - 1 do

   if Abs(L[i][1] - m) > 10 then

   begin

     St.Push(i);

     Inc(k1)

   end

   else m := L[i][1];

 for var i := 1 to k1 do

   L.RemoveAt(St.Pop);

 Println(k1);

end.

Пример610 58 58 58 512 2513 102 1 1
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота