Разбор Демоверсии 2024 по информатике

Рейтинг: 5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

Задание 1. Анализ информационных моделей

На рисунке изображена схема дорог N-ского района. В таблице звездочкой обозначено наличие дороги из одного населенного пункта в другой.

Каждому населённому пункту на схеме соответствует номер в таблице, но неизвестно, какой именно номер. Определите, какие номера в таблице могут соответствовать населённым пунктам E и F на схеме. В ответе запишите эти два номера в возрастающем порядке без пробелов и знаков препинания.

Решение и ответ
Анализируя таблицу и граф, мы видим, что все вершины соединены с С, то есть это пункт 1, далее находим вершины, из которых выходят только 2 дороги - это 2 и 6. Из них по цепочке протягиваем остальные вершины. Не важно, из 2 или 6 начнем, потому что EF находится в центре, в ответе запишем эти два номера в возрастающем порядке - 35.

1 2

Ответ: 35

Задание 2. Построение таблиц истинности логических выражений

Миша заполнял таблицу истинности логической функции

F=(x ∧ ¬y) ∨ (y≡z) ∨ ¬w

но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
Определите, какому столбцу таблицы соответствует каждая из переменных w, x, y, z. В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

       

(x ∧ ¬y) v (y≡z) v ¬w

   

0

0

0

1

0

 

0

0

1

0

1

 

0

Пример. Функция задана выражением ¬x v y, зависящим от двух переменных, а фрагмент таблицы имеет следующий вид. В этом случае первому столбцу соответствует переменная y, а второму столбцу – переменная x. В ответе следует написать yx.

Решение и ответ

ИЛИ

print('x y z w')
for x in range (2):
 for y in range(2):
  for z in range(2):
   for w in range(2):
    if not ((x and not(y)) or (y == z) or not (w)):
     print (x, y, z, w)

получим таблицу:
x y z w
0 0 1 1
0 1 0 1
1 1 0 1
и определим, что единственное решение, это - WZYX

Ответ: WZYX

Задание 3. Базы данных. Файловая система

В файле приведён фрагмент базы данных «Кондитерские изделия» о поставках конфет и печенья в магазины районов города. База данных состоит из трёх таблиц. Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой половины июня 2023 г., а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа, а в соответствующее поле Количество упаковок, шт. внесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня. Заголовок таблицы имеет следующий вид.

2024 3 1

Таблица «Товар» содержит информацию об основных характеристиках каждого товара. Заголовок таблицы имеет следующий вид.

2024 3 2

Таблица «Магазин» содержит информацию о местонахождении магазинов. Заголовок таблицы имеет следующий вид.

2024 3 3

 

На рисунке приведена схема указанной базы данных. Используя информацию из приведённой базы данных, определите общую массу (в кг) всех видов зефира, полученных магазинами на улице Металлургов за период с 4 по 13 июня включительно. В ответе запишите только число.

 

Решение и ответ
На 3 листе применив фильтры, найдем ID магазинов.

 

Затем на 2 листе узнаем каким артикулам соответствуют разные вида зефира и какой вес упаковок

 На листе движение товаров найдем количество упаковок зефира каждого вида ,поступившего в продажу

 

1400 * (0, 25 + 0, 8 + 0, 5 + 1) = 3570 кг

Ответ: 3570

Задание 4. Кодирование и декодирование информации

По каналу связи передаются сообщения, содержащие только восемь букв: А, Б, В, Г, Д, Е, Ж и З. Для передачи используется двоичный код, удовлетворяющий условию Фано.
Кодовые слова для некоторых букв известны:

А 000
Б 001
В 0101
Г 0100
Д 011
Е 101

Какое наименьшее количество двоичных знаков потребуется для кодирования двух оставшихся букв?
В ответе запишите суммарную длину кодовых слов для букв: Ж, З.
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.

Решение и ответ

Построив дерево вариантов, получим две свободные позиции 11 и 100 для букв З и Ж. Суммарно, это 5 знаков.

Ответ: 5

Задание 5. Анализ и построение алгоритмов для исполнителей

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N делится на 3, то к этой записи дописываются три последние двоичные цифры;
б) если число N на 3 не делится, то остаток от деления умножается на 3, переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 12 = 11002 результатом является число 11001002 = 100, а для исходного числа 4 = 1002 это число 100112 = 19.

Укажите минимальное число R, большее 151, которое может быть получено с помощью описанного алгоритма.
В ответе запишите это число в десятичной системе счисления.

Решение и ответ

Переведем алгоритм на язык программирования

for N in range(50): #перебираем по порядку N
 N1 = bin(N)[2:] #переводим в бинарный код
 if N % 3 == 0: # в зависимости от делимости на три выполняется условие
  N1 += N1[ -3:]
 else:
  N1 += bin((N % 3)*3)[2:]
 R = int(N1, 2) # переводим число R в целое число
 print(N, R)

В полученных значениях N и R находим нужную строку, это число 163.

Ответ: 163

Задание 6. Анализ программ
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения.
У исполнителя существует две команды:
Вперёд n (где n– целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, и Направо m (где m– целое число), вызывающая изменение направления движения на m градусов по часовой стрелке.
Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 7 [Вперёд 10 Направо 120].
Определите, сколько точек с целочисленными координатами будут находиться внутри области, которая ограничена линией, заданной этим алгоритмом. Точки на линии учитывать не следует.

ИЛИ

Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения.
У исполнителя существует 6 команд: Поднять хвост, означающая переход к перемещению без рисования;
Опустить хвост, означающая переход в режим рисования; Вперёд n (где n– целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n– целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m– целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m– целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 8 Направо 90 Вперёд 18 Направо 90]
Поднять хвост
Вперёд 4
Направо 90
Вперёд 10
Налево 90
Опустить хвост
Повтори 2 [Вперёд 17 Направо 90 Вперёд 7 Направо 90]
Определите, сколько точек с целочисленными координатами будут находиться внутри объединения фигур, ограниченного заданными алгоритмом линиями, включая точки на линиях.

Решение и ответ
Сначала построим в Кумире фигуру:

count = 0
k = 3**0.5

for x in range(1,20):
 for y in range(1,20):
  if x/k < y < -x/k + 10:
  count +=1

print (count)

ИЛИ

Получилась фигура, состоящая из двух пересекающихся прямоугольников. Назовем условно печка с трубой. Посчитаем точки на печке, включая границы: 9*19 = 171

Точек на трубе всего 18*8 = 144, вычтем 5 * 8 = 40, которые мы уже посчитали.
Получим всего: 171 + 104 = 275

Ответ: 38 ИЛИ 275

Задание 7. Кодирование и декодирование информации. Передача информации

Прибор автоматической фиксации нарушений правил дорожного движения делает цветные фотографии размером 1024×768 пикселей, используя палитру из 4096 цветов. Для передачи снимки группируются в пакеты по 256 штук. Определите максимальный размер одного пакета фотографий в Мбайт.

В ответе запишите только число.

Решение и ответ

N = 2 i
I = K · i ⇒ i = I/K

К = 1024 · 768 = 768 · 210 = 3 · 256 · 210 = 3 · 218 пикселей

N = 4096 = 212i = 12 бит

I =3 · 218 ·12 · 256 = 3 · 218 · 3 · 22· 28= 9 · 228= 9 · 25 · 223 = 288 Мбайт

Ответ: 288

Задание 8. Перебор слов и системы счисления

Сколько существует восьмеричных пятизначных чисел, не содержащих в своей записи цифру 1, в которых все цифры различны и никакие две чётные или две нечётные цифры не стоят рядом.

Решение и ответ
* * * * * - пятизначное число

алфавит: {0, 1, 2, 3, 4, 5, 6, 7}
четные цифры: {0, 2, 4, 6}
нечетные цифры: {1, 3, 5, 7}, без 1 {3, 5, 7}

Допустим, первая цифра четная (замечу, что 0 не может быть первым, число пятизначное), тогда по правилу произведения, перемножим варианты:

3 · 3 · 3 · 2 · 2 = 108 вариантов

Допустим, первая цифра нечетная, тогда:

3 · 4 · 2 · 3 · 1 = 72 варианта

Всего, 108 + 72 = 180

Ответ: 180

Задание выполняется с использованием прилагаемых файлов

Задание 9. Работа с таблицами

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите количество строк таблицы, для чисел которых выполнены оба условия:
– в строке есть два числа, каждое из которых повторяется дважды, остальные три числа различны;
– среднее арифметическое всех повторяющихся чисел строки меньше среднего арифметического всех её чисел.

В ответе запишите только число.

Файл с данными

Решение и ответ
При помощи формулы СЧЕТЕСЛИ посчитаем в следующих вспомогательных 7 столбцах сколько раз встречается каждое из чисел.

Далее найдем среднее арифметическое чисел, которые встречаются дважды. Если таких чисел нет, будет ошибка, но на ответ она не влияет, эти строки не подходят по условию задачи.

Далее в столбце Р найдем среднее арифметическое в строке =СРЗНАЧ(А1:G1)

Далее в столбце Q найдем сумму значений в столбцах Н:N. Сумма должна равняться 11, чтобы соблюдалось условие.

Осталось проверить соблюдение условий в столбце R. Строки с ошибками выключим в фильтре.

Сумма значений столбца R будет ответом на задачу.

Ответ: 83

Задание выполняется с использованием прилагаемых файлов

Задание 10. Поиск символов в текстовом редакторе

Файл с данными

Определите, сколько раз в тексте главы II повести А.И. Куприна «Поединок» встречается сочетание букв «все» или «Все» только в составе других слов, но не как отдельное слово. В ответе укажите только число.

Решение и ответ

В текстовом редакторе используем инструмент расширенный поиск. В строке поиска пишем все. Ставим галочку все словоформы. Потом выделяем вторую главу и указываем текущий фрагмент поиска. Получим 17. Далее ставим галочку слово целиком и снова выделяем 2 главу, указываем текущий фрагмент. Получим 8 соответствий. Ответом будет 17 - 8 = 9

Ответ: 9

Задание 11. Вычисление количества информации

При регистрации в компьютерной системе каждому объекту присваивается идентификатор, состоящий из 60 символов и содержащий только десятичные цифры и символы из 250-символьного специального алфавита.В базе данных для хранения каждого идентификатора отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование идентификаторов, все символы кодируются одинаковым и минимально возможным количеством бит. Определите объём памяти (в Кбайт), необходимый для хранения 65 536 идентификаторов.

В ответе запишите только целое число – количество Кбайт.

Решение и ответ

ID: {**....*} – всего 60 символов

N: {десятичные цифры+ символы специального алфавита} - всего 260 символов

N = 2 i,  260 > 256 ⇒ 512 = 29, значит для кодирования одного символа нужно 9 бит

I = K · i,I = 60 · 9 = 540 бит ≈ 68 байт – отводится на 1 идентификатор

I65536 = 68 · 65536 = 68 · 64 · 210 байта = 4352 Кбайта – всего.

Ответ: 4352

Задание 12. Выполнение алгоритмов для исполнителей

Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

А) заменить (v, w). Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w.
Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.
Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку. Б) нашлось (v). Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

Цикл
 ПОКА условие
  последовательность команд
 КОНЕЦ ПОКА
выполняется, пока условие истинно.

В конструкции
 ЕСЛИ условие
  ТО команда 1
 КОНЕЦ ЕСЛИвыполняется команда 1 (если условие истинно).

В конструкции
 ЕСЛИ условие
  ТО команда 1
  ИНАЧЕ команда 2
 КОНЕЦ ЕСЛИвыполняется команда 1 (если условие истинно) или команда 2 (если условие ложно).

Дана программа для Редактора:

НАЧАЛО
ПОКА нашлось (52) ИЛИ нашлось (2222) ИЛИ нашлось (1122)
 ЕСЛИ нашлось (52)
  ТО заменить (52, 11)
 КОНЕЦ ЕСЛИ
 ЕСЛИ нашлось (2222)
  ТО заменить (2222, 5)
 КОНЕЦ ЕСЛИ
 ЕСЛИ нашлось (1122)
  ТО заменить (1122, 25)
 КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ

На вход приведённой выше программе поступает строка, начинающаяся с цифры «5», а затем содержащая n цифр «2» (3 < n < 10 000). Определите наибольшее значение n, при котором сумма цифр в строке, получившейся в результате выполнения программы, равна 64.

Решение и ответ

for n in range(3, 100001):
 S = '5' + '2' * n
 while '52' in S or '2222' in S or '1122' in S:
  if '52' in S:
   S = S.replace ('52', '11',1)
  if '2222' in S:
   S = S.replace ('2222', '5',1)
  if '1122' in S:
   S = S.replace ('1122', '25')
 sum_S = 0
 for i in S:
  sum_S += int(i)
 if sum_S == 64:
  print(n)

Ответ: 156

Задание 13. Организация компьютерных сетей. Адресация

В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.

Сеть задана IP-адресом 192.168.32.160 и маской сети 255.255.255.240.

Сколько в этой сети IP-адресов, для которых сумма единиц в двоичной записи IP-адреса чётна?

В ответе укажите только число.

Решение и ответ
узел в сети: 192. 168.  32.*
маска: 255. 255. 255. 240
адрес сети: 192. 168. 32. 160

Переведем в двоичный код

11000000. 10101000. 00100000. 1010ХХХХ - узел в сети
11111111. 11111111. 11111111. 11110000 - маска
11000000. 10101000. 00100000. 10100000 - адрес сети

В маске первые 28 единиц, значит последние четыре нуля соответствуют неизвестным узлам сети.

Их всего ХХХХ - 24 различных вариантов. Из них четных - 8. На четность не повлияют остальные единицы двоичной записи IP-адреса, так как их 8.

Ответ: 8

Задание 14. Кодирование чисел. Системы счисления

Операнды арифметического выражения записаны в системе счисления с основанием 19.

98897x2119 + 2x92319

В записи чисел переменной x обозначена неизвестная цифра из алфавита 19-ричной системы счисления.

Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 18. Для найденного x вычислите частное от деления значения арифметического выражения на 18 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.

ИЛИ

Значение арифметического выражения

3 ∙ 31258 + 2 ∙ 6257 – 4 ∙ 6256 + 3 ∙ 1255 – 2 ∙ 254 – 2024

записали в системе счисления с основанием 25. Сколько значащих нулей содержится в этой записи?

Решение и ответ

for x in '0123456789abcdefghi':
 a = '98897' + x + '21'
 b = '2' + x + '923'
 c = int(a,19) + int(b, 19)
 if c % 18 == 0 :
  print(x, c // 18)

ИЛИ

x = 3 * 3125**8 + 2 * 625**7 - 4 * 625**6 + 3 * 125**5 - 2 * 25**4 - 2024
count = 0
while x > 0:
 if x % 25 == 0:
  count += 1
 x = x // 25
print(count)

Ответ: 469034148 или 9

Задание 15. Преобразование логических выражений

Для какого наименьшего целого неотрицательного числа A выражение

(x + 2y < A) \/ (y > x) \/ (x > 60)

тождественно истинно, т.е. принимает значение 1 при любых целых неотрицательных x и y?

Решение и ответ

for A in range(1, 500):
 ок = True
 for x in range(1, 500):
  for y in range(1, 500):
   ок*= bool( (x + 2*y < A ) or (y > x) or (x > 60))

 if OK:
  print(A)
  break

Ответ: 181

Задание 16. Рекурсивные алгоритмы

Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:

F(n) = n при n > 2024;

F(n) = n × F(n + 1), если n ≤ 2024.Чему равно значение выражения F(2022) / F(2024)?

Решение и ответ

F(2022) / F(2024) = (2022 * 2023 * 2024 * 2025) / (2024 * 2025) = 2023 * 2024 = 4090506

Ответ: 4090506

Задание 17. Проверка на делимость

В файле содержится последовательность натуральных чисел, каждое из которых не превышает 100 000. Определите количество троек элементов последовательности, в которых ровно два из трёх элементов являются трёхзначными числами, а сумма элементов тройки не больше максимального элемента последовательности, оканчивающегося на 13.

Гарантируется, что в последовательности есть хотя бы одно число, оканчивающееся на 13. В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

Решение и ответ

f = open('17_2024.txt')
p = [int(i) for i in f]
f.close()
M = 0
count = 0
M3 = 0

for i in p:
 if i % 100 == 13:
  M = max( M, i)
for i in range(len(p) -2):
      s = p[i] + p[i+1] + p[i+2]
  if (100 <= p[i] < 1000) + (100 <= p[i + 1] < 1000) +  (100 <= p[i + 2] < 1000) == 2 and s <= M:
           count += 1
        M3 = max(M3, s)
print(count, M3)

Ответ: 959 97471

Задание выполняется с использованием прилагаемых файлов

Задание 18. Робот-сборщик монет

Файл с данными

Квадрат разлинован на N×N клеток (1 < N < 30). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз — в соседнюю нижнюю. Квадрат ограничен внешними стенами. Между соседними клетками квадрата также могут быть внутренние стены. Сквозь стену Робот пройти не может.Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.В «угловых» клетках поля – тех, которые справа и снизу ограничены стенами, Робот не может продолжать движение, поэтому накопленная сумма считается итоговой. Таких конечных клеток на поле может быть несколько, включая правую нижнюю клетку поля. При разных запусках итоговые накопленные суммы могут различаться.

Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.В ответ запишите два числа друг за другом без разделительных знаков — сначала максимальную сумму, затем минимальную.

Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата.Пример входных данных:

Решение и ответ
Ctrl+A Уменьшим ширину всех столбцов таблицы до 5. Скопируем таблицу рядом вместе со стенками и очистим ее клавишей Del.
Начинаем заполнение.
V1 = A1, W1=V1+B1 и протягиваем право, V2 =V1+A2 и протягиваем вниз,
W2 = МАКС(W1;V2)+B2 и протягиваем на всю таблицу копируя только значения, стенки не трогаем. Затем копируем формулы в верхней строке соответствующих ячеек и заполняем под стенами, копируем формулы в первом столбце соответствующих ячеек и заполняем ячейки правее стенок.
2024 18 1
Находим максимальное значение из трех тупиковых клеток. Это 2167.
Далее Ctrl+H и заменяем МАКС на МИН. Получим:
2024 18 2

.Ищем минимальное значение в тупиковых клетках. Это 718.

Ответ: 2167 718

Задание 19. Выигрышная стратегия

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

Игра завершается в тот момент, когда количество камней в куче становится не менее 129. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу из 129 или больше камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 128.

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.

Решение и ответ

Ваня выиграл первым ходом при любом ходе Пети. Это число 64. Если Петя удвоит камни, то Ване останется довавить 1 до выигрыша - 129 камней. Если Петя прибавит один, то Ваня удвоит и получит 130.

Ответ: 64

Задание 20. Выигрышная стратегия

Для игры, описанной в задании 19, найдите два наименьших значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
– Петя не может выиграть за один ход;
– Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Найденные значения запишите в ответе в порядке возрастания.

Решение и ответ
23 20r

Ответ: 32 63

Задание 21. Выигрышная стратегия

Для игры, описанной в задании 19, найдите минимальное значение S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

Если найдено несколько значений S, в ответе запишите минимальное из них.

Решение и ответ
23 21r

 

Ответ: 62

Задание выполняется с использованием прилагаемых файлов

Задание 22. Анализ программы с циклами и условными операторами

Файл с данными

В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A.
В этом случае процессы могут выполняться только последовательно.

Информация о процессах представлена в файле в виде таблицы. В первой строке таблицы указан идентификатор процесса (ID), во второй строке таблицы – время его выполнения в миллисекундах, в третьей строке перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс является независимым, то в таблице указано значение 0.Типовой пример организации данных в файле:

Определите максимальную продолжительность отрезка времени (в мс), в течение которого возможно одновременное выполнение четырёх процессов, при условии, что все независимые друг от друга процессы могут выполняться параллельно.

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

Решение и ответ
В данной задаче нужно найти максимальное время выполнения 4-х параллельных процессов. Для этого построим таблицу, в которой наглядно видно выполнение всех процессов. Причем, процессы 9-12 можно двигать с 0 мс до последней. Проделывая такие передвижения, получим максимальное время выполнения 4-х процессов равное 7 мс.

2024 22

Ответ: 7

Задание 23. Анализ программы с циклами и условными операторами

Исполнитель преобразует число на экране.У исполнителя есть три команды, которые обозначены латинскими буквами:
A. Прибавить 1
B. Умножить на 2
C. Возвести в квадрат

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 2 результатом является число 20, при этом траектория вычислений не содержит числа 11?Траектория вычислений программы – это последовательность результатов выполнения всех команд программы.

Например, для программы CBA при исходном числе 4 траектория будет состоять из чисел 16, 32, 33.

Решение и ответ
 def f(x, y):
 if x == y:
  return 1
 if x > y or x == 11:
  return 0
 else:
  return f(x +1, y) + f (x * 2, y) + f(x**2, y)
print (f(2, 20))

Ответ: 37

Задание выполняется с использованием прилагаемых файлов

Задание 24. Анализ программы с циклами и условными операторами

Файл с данными

Текстовый файл состоит не более чем из 106 символов T, U, V, W, X, Y и Z. Определите максимальное количество идущих подряд символов (длину непрерывной подпоследовательности), среди которых символ Т встречается ровно 100 раз.Для выполнения этого задания следует написать программу.

Решение и ответ
 f = open('24_10105.txt')
s = f.readline()
n = [] #массив с индексами букв Т
M = 0 #обнуляем длину максимальной подпоследовательности
for i in range (len(s)):
 if s[i] == 'T':
  n.append(i) # добавляем в массив номера букв Т
for i in range (len(n) - 101): # возможные начала нашей подпоследовательности
 M = max(M, n[i+101] - n[i] - 1 ) #находим разницу между номерами 101-ой и первой буквы Т минус номер 101 буквы в последовательности и находим максимальную
print(M)

Ответ: 133

Задание 25. Анализ программы с циклами и условными операторами

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
– символ «?» означает ровно одну произвольную цифру;
– символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.Например, маске 123*4?5 соответствуют числа 123405 и 12300405.Среди натуральных чисел, не превышающих 1010, найдите все числа, соответствующие маске 1?2157*4, делящиеся на 2024 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на 2024. Количество строк в таблице для ответа избыточно.

Решение и ответ

from fnmatch import *
for x in range(0, 10**10 +1, 2024):
 if fnmatch(str(x),'1?2157*4'):
  print(x, x // 2024)
Ответ:
142157664 70236
1021575544 504731
1121571264 554136
1221577104 603546
1321572824 652951
1421578664 702361
1521574384 751766
1621570104 801171
1721575944 850581
1821571664 899986
1921577504 949396

Задание выполняется с использованием прилагаемых файлов

Задание 26. Анализ программы с циклами и условными операторами

Файл с данными

Входной файл содержит сведения о заявках на проведение мероприятий в конференц-зале. В каждой заявке указаны время начала и время окончания мероприятия (в минутах от начала суток). Если время начала одного мероприятия меньше времени окончания другого, то провести можно только одно из них. Если время окончания одного мероприятия совпадает со временем начала другого, то провести можно оба. Определите, какое максимальное количество мероприятий можно провести в конференц-зале и каков при этом максимально возможный перерыв между двумя последними мероприятиями.

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

В первой строке входного файла находится натуральное число N (N ≤ 1000) – количество заявок на проведение мероприятий. Следующие N строк содержат пары чисел, обозначающих время начала и время окончания мероприятий. Каждое из чисел натуральное, не превосходящее 1440. Запишите в ответе два числа: максимальное количество мероприятий и самый длинный перерыв между двумя последними мероприятиями (в минутах).

Типовой пример организации данных во входном файле
10 150
100 120
131 170
150 180
120 130

При таких исходных данных можно провести максимум три мероприятия, например, мероприятия по заявкам 2, 3 и 5. Максимальный перерыв между двумя последними мероприятиями составит 20 мин., если состоятся мероприятия по заявкам 2, 4 и 5.

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

Решение и ответ
Откроем файл в excel с разделителями пробелами. Первое значение количество строк можно удалить. Далее отсортируем по времени окончания мероприятия по воозрастанию. После применяем формулы:
2024 26 1
Далее считаем оставленные  мероприятия 
 2024 26 2
Сумма значений в столбце D равна 32. Далее найдем два последних мероприятия. Между началом последнего и концом предпоследнего прошло 15 минут.

Ответ: 32 15

Задание выполняется с использованием прилагаемых файлов

Задание 27. Анализ программы с циклами и условными операторами

По каналу связи передаётся последовательность целых чисел – показания прибора. В течение N мин. (N – натуральное число) прибор ежеминутно регистрирует значение напряжения (в условных единицах) в электрической сети и передаёт его на сервер.Определите три таких переданных числа, чтобы между моментами передачи любых двух из них прошло не менее K мин, а сумма этих трёх чисел была максимально возможной. Запишите в ответе найденную сумму.

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

Файл A

Файл B

Даны два входных файла (файл A и файл B), каждый из которых в первой строке содержит натуральное число K – минимальное количество минут, которое должно пройти между моментами передачи показаний, а во второй – количество переданных показаний N (1 ≤ N ≤ 10 000 000, N > K). В каждой из следующих N строк находится одно целое число, по модулю не превышающее 10 000 000, которое обозначает значение напряжения в соответствующую минуту.

Запишите в ответе два числа: сначала значение искомой величины для файла А, затем – для файла B.

Типовой пример организации данных во входном файле
2
6
150
–150
20
–200
–300
0

При таких исходных данных искомая величина равна 170 – это сумма значений, зафиксированных на первой, третьей и шестой минутах измерений.

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

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

Решение и ответ

f=open('27_B_2024.txt')
p = [int(x) for x in f] #читаем файл в целочисленный массив
f.close()
k = p[0] #минимальное количество минут между показаниями
n = p[1] # количество переданных показаний
del (p[0])
del (p[0])
m1 = m2 =m3 = -float('inf')
for i in range( n - 2*k):
 m1 = max (m1, p[i]) #находим в первом интервале максимальный элемент
 m2 = max (m2, p[i + k]+m1) #далее на расстоянии к находим второй максимальный элемент и максимальную сумму двух элементов
 m3 = max (m3, p[i +2* k]+m2) # на расстоянии 2к минут третий элемент и их максимальную сумму
print(m3)

Ответ: 189536 17210
Добавить комментарий


РСЯ футер

© 2017 Компьютерный клуб "КОД". Все права защищены.