Информатика

15 724 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться вдоль бесконечной горизонтальной ленты, разделённой на равные ячейки.
Полный текст условия см. по ссылке
 

Выполните задание.

На ленте записана последовательность из 800 символов. Каждый символ берется из алфавита {0, 1, 2, 3}. Последовательность окружёна слева и справа пустым символом λ. Головка стартует на ближайшем слева символе λ и находится в состоянии q0. В исходной последовательности присутствует каждый символ из алфавита хотя бы один раз.

Программа работы исполнителя:

 

λ

0 1 2 3
q0

λ, R, q1

       
q1

λ, S, q1

1, R, q1

2, R, q1 3, R, q1 0, R, q1

После выполнения программы на ленте остались символы, дающие в числовом выражении сумму равную 920. Определите максимально возможное число двоек в исходной последовательности.

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

Выполните задание.

На ленте записана последовательность из 1000 символов. Каждый символ берется из алфавита {0, 1, 2}. Последовательность окружёна слева и справа пустым символом λ. Головка стартует на ближайшем слева символе λ и находится в состоянии q0. В исходной последовательности присутствует каждый символ из алфавита хотя бы один раз.

Программа работы исполнителя:

 

λ

0 1 2
q0

λ, R, q1

     
q1

λ, S, q0

0, R, q1

2, R, q1 1, R, q1

После выполнения программы на ленте остались символы, дающие в сумме 730. Определите максимальное возможное число нулей в исходной последовательности.

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

Выполните задание.

На ленте записана последовательность из 900 символов (0 и 1), окружённая  слева и справа пустым символом λ. Головка стартует на ближайшем слева символе λ и находится в состоянии q0.

Программа работы исполнителя:

 

λ

1 0
q0

λ, R, q1

   
q1

λ, S, q0

0, R, q1

1, R, q1

После выполнения программы на ленте осталось ровно 480 единиц. Определите минимально возможное число единиц в исходной последовательности.

Дубликаты - одинаковые строки в данных, которые могут исказить анализ.

Основные методы

df.duplicated() - находит дубликаты (возвращает True/False)
df.drop_duplicates() - удаляет дубликаты
df.nunique() - количество уникальных значений
Параметры drop_duplicates()
subset - столбцы для проверки дубликатов
keep - какую копию оставить ('first', 'last', False)
ignore_index -  пересоздает аккуратный последовательный индекс (0, 1, 2, 3, 4...).
Пример
df_clean = df.drop_duplicates()  # Удалить полные дубликаты
df_partial = df.drop_duplicates(subset=['name'])  # По имени
df_last = df.drop_duplicates(keep='last')  # Оставить последний

Задание

1) Посчитайте количество полных дубликатов в прикрепленном датасете (программа должна вывести целое число)
2) Удалите все полные дубликаты и выведите размер получившегося датасета.

Обработка пропусков

df.dropna() - удаляет строки с пропусками
df.fillna(value, inplace=True) - заполняет пропуски значением value
df.fillna(df.mean(), inplace=True) - заполняет средним значением

Параметр inplace:
inplace=False (по умолчанию) - создает копию с изменениями
inplace=True- изменяет исходный DataFrame напрямую

Метод fillna() с словарем позволяет заполнить пропуски в разных столбцах различными значениями за одну операцию. Синтаксис:
df.fillna({'column1': value1, 'column2': value2, ...})
Пример
 
df = ...
# Заполнение разными значениями
fill_dict = {
    'age': df['age'].mean(),      # Средним значением
    'salary': df['salary'].median(), # Медианой
    'city': 'Unknown'             # Константой
}

df_filled = df.fillna(fill_dict)
print(df_filled)
 

Задание

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

  1. Заполните пропуски в power и intelligence средними значениями
  2. Заполните пропуски в costume_cost медианным значением 
  3. Заполните пропуски в first_appearance значением 1950 
  4. Для текстовых полей (name, alias, universe) заполните пропуски строкой Unknown
Выведите обработанный датасет на экран, используя print(df)

Пропущенные значения (NaN, None, NULL) - одна из главных проблем при анализе данных.

Поиск пропусков

df.isnull() - находит пропуски
df.isnull().sum() - считает пропуски по столбцам

 

Задание

Проанализируйте датасет супергероев, считав его из прикрепленного файла
Напишите программу, который ищет пропуски. Выведите

  1. В первой строке - количество пропусков в каждом столбце (семь целых чисел через пробел)
  2. Во второй строке - процент пропущенных значений (отбросив дробную часть) для каждого столбца  (семь целых чисел через пробел)
Числа должны быть в порядке перечисления столбцов в датасете.

Пример вывода (пример дан для понимания формата вывода):
1 2 3 2 1 1 4
10 20 30 20 10 10 40

Промахом считается выстрел с расстоянием больше 10.0. Определите, у какого игрока был самый худший одиночный выстрел (максимальное значение в массиве)? А сколько всего фатальных промахов совершила вся команда?

Тренеры заметили, что некоторые игроки сильно «разогреваются» к концу сессии. Проверьте гипотезу: сравните среднюю точность каждого игрока по первым пяти выстрелам и по последним пяти. У кого разница в пользу последних выстрелов наибольшая? (Значит, он "разыгрывается").
Точность — это хорошо, но стабильность — лучше! Найдите игрока с самой маленькой дисперсией или стандартным отклонением результатов. Это значит, что он стабильно стреляет примерно с одинаковой точностью.
Найдите сумму всех целых чисел, расположенных между двумя целыми числами a и b (включая a и b).

Формат входных данных
В первой строке записано целое число a, во второй - целое число b (-1000 <= a, b <= 1000).

Формат выходных данных
Выведите искомую сумму.
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться вдоль бесконечной горизонтальной ленты, разделённой на равные ячейки.
Полный текст условия см. по ссылке
 

Выполните задание.

На ленте записана последовательность из 1200 символов (0 и 1), окружённая  слева и справа пустым символом λ. Головка стартует на ближайшем справа символе λ и находится в состоянии q0.

Программа работы исполнителя:

 

λ

1 0
q0

λ, L, q1

   
q1

λ, S, q1

1, S, q1

0, L, q1

После выполнения программы на ленте осталось ровно 512 нулей. Определите максимально возможное число нулей в исходной последовательности.

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

Выполните задание.

На ленте записана последовательность из 800 символов (0 и 1), окружённая  слева и справа пустым символом λ. Головка стартует на ближайшем слева от последовательности символе λ и находится в состоянии q0.

Программа работы исполнителя:

 

λ

1 0
q0

λ, R, q1

   
q1

λ, S, q1

0, R, q1

1, S, q1

После выполнения программы на ленте осталось ровно 275 единиц. Определите максимально возможное число единиц в исходной последовательности.

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

Выполните задание.

На ленте записана последовательность из 950 символов (0 и 1), окружённая слева и справа пустым символом λ. Головка стартует на ближайшем справа символе λ и находится в состоянии q0.

Программа работы исполнителя:

 

λ

1 0
q0

λ, L, q1

   
q1

λ, S, q1

1, L, q1

0, S, q1

После выполнения программы на ленте осталось ровно 420 единиц. Определите максимально возможное число единиц в исходной последовательности.

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

Выполните задание.

На ленте в соседних ячейках записана последовательность из 1000 символов, включающая только нули и единицы. Ячейки справа и слева от последовательности заполнены пустыми символами «λ». В начальный момент времени головка расположена в ближайшей ячейке справа от последовательности.

Программа работы исполнителя:

 

λ

1 0
q0

λ, L, q1

   
q1

λ, S, q1

0, S, q1

1, L, q1
 

После выполнения программы на ленте осталось ровно 343 нуля. Определите максимально возможное число нулей в исходной последовательности.

⏰ Починка машины времени:
[███████████░░░░░░░░░] 57% - Модуль 4 из 7 восстановлен
✅ Анализатор временных петель: ФУНКЦИОНИРУЕТ

Машина должна создавать порталы в каждые n лет, начиная с 2000 года. Запрограммируйте машину, напишите программу, которая по введенному Хроносом числу будет создавать порталы в соответствующие годы, начиная с 2000 года.

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

Формат выходных данных
Программа должна выводить на экран созданные порталы  и года, в которые они ведут по формату: Портал номер: год
66860#66860
Компания “РудниК” хочет построить автономный рудодобывающий городок и ей необходимо рассчитать хватит ли её новому городу припасов на автономное существование в течении 100 месяцев. Для автономного существования городу необходимы: токарные изделия, электронные платы, бетон и еда. Изначально в городке находится по 30 единиц каждого ресурса. Каждые 10 месяцев в городок приходит по X единиц каждого ресурса. То есть при наступлении 10-го, 20-го, 30-го месяца и так далее. Чтобы автономно существовать без построек город потребляет по Y единицы каждого ресурса за месяц. Потребление ресурса происходит после поступления ресурсов с заводов и других источников. Если в какой-то месяц один из ресурсов кончится (станет равным 0 или меньше 0), то город закроют, а жителей вывезут. Рудодобывающий город начинает свой отсчёт с дня №1. Администрация города может строить здания, чтобы производить ресурсы самостоятельно:
  • - завод по переработке отходов. Стоимость 8 токарных изделий, 3 электронные платы, 10 бетона. Время строительства 5 месяцев. Каждые 2 месяца завод будет выдавать 5 бетона и 2 токарных изделия. Потребляет 3 токарных изделия каждые 5 месяцев. ID завода - 1.
  • - теплица. Стоимость 8 бетона и 5 токарных изделий. Время строительства 5 месяцев. Каждые 5 месяцев теплица будет приносить 7 еды. Потребляет 2 бетона каждые 10 месяцев. ID завода - 2.
  • - завод по производству электроники. Стоимость 6 электронных плат, 10 токарных изделий, 10 бетона. Время строительства 10 месяцев. Каждые 10 месяцев будет выдавать по 6 электронных плат. Потребляет 2 токарных изделия каждые 18 месяцев. ID завода - 3.
  • - завод по производству бетона. Стоимость 4 электронные платы, 8 токарных изделий, 8 бетона. Время строительства 8 месяцев. Каждые 8 месяцев будет выдавать по 8 бетона. Потребляет 1 токарное изделие и 1 электронную плату каждые 12 месяцев. ID завода - 4.
Завод начинает приносить доход или начинает вести отсчёт до выдачи новых ресурсов на следующий месяц после завершения его постройки или прошлой выдачи ресурсов. Если завод приносит ресурсы на n-ый месяц, на следующий n+1 месяц начинается отсчёт прихода ресурсов в новом цикле. Представим, что теплица начнёт строительство в 5-ый месяц, значит её строительство завершится на 9-ый месяц, производить ресурсы она будет с 10-го месяца, а первый “урожай” будет собран на 14-ый месяц. Администрация города может построить несколько заводов, если у неё хватает на это ресурсов. Можно начать строительство завода только, если на момент начала строительства все ресурсы есть в наличии. Месяц начала строительства завода полностью учитывается во времени его строительства. Только разные заводы/строения могут строится одновременно. Эффекты от нескольких заводов складываются.

Формат входных данных
На вход программа получает 2 числа 0<=X<=40, 1<=Y<=40, количество ресурсов, которые колония получается и тратит соответственно. И двумерный массив (каждый элемент на новой строке), размером 4 на 5, указывающий в какой месяц должно начаться строительство того или иного здания. Где по вертикали - ID строения/завода, а по горизонтали номер планируемой к строительству постройки. Каждую постройку могут построить максимально 5 раз. Если в столбце строения указано число 0, значит завод/строение не строится.

Формат выходных данных
На выходе программа должна выдать количество месяцев, которые город смог самостоятельно себя обеспечивать, если он просуществовал 100 месяцев, значит город признан успешным. На следующих строках вывести остаток ресурсов на момент завершения расчётов, не важно успешных или неуспешных. Числа могут принимать отрицательные значения.
Строка 1: Кол-во прожитых месяцев; 2: Токарных изделий; 3: Электронных плат; 4:Бетона; 5:Еды.
В файле приведён фрагмент базы данных «Продукты» о поставках товаров в магазины районов города. База данных состоит из трёх таблиц.
Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой декады июня 2021 г.,
а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа,
а в соответствующее поле Количество упаковок внесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня. Заголовок таблицы имеет следующий вид.
ID
операции
Дата ID
магазина
Артикул Количество
упаковок, шт.
Тип
операции
Таблица «Товар» содержит информацию об основных характеристиках каждого товара. Заголовок таблицы имеет следующий вид.
Артикул Отдел Наименование
товара
Ед_изм Количество
в упаковке
Цена за
упаковку
Таблица «Магазин» содержит информацию о местонахождении магазинов. Заголовок таблицы имеет следующий вид.
ID магазина Район Адрес
На рисунке приведена схема указанной базы данных.


Используя информацию из приведенной базы данных, определите, на сколько единиц увеличилось количество упаковок сливок порционных питьевых безлактозных жирностью 10%, имеющихся в магазинах Заречного района, за период с 1 по 15 октября включительно. В ответе запишите только число.


Файл к заданию
Поделиться
Класснуть