Продолжаем подготовку к ЕГЭ по информатике 2023 года. Разбираем задания, присланные подписчиками. Ссылка для отправки своих заданий — ниже.
Задание №7: Звуковой фрагмент
Записывается звуковой фрагмент в формате квадро (четырёхканальная запись) с частотой дискретизации 32 кГц и 32-битным разрешением. Файл записывается без сжатия, с добавлением служебной информации. Размер файла — 97 МБ (обозначим как I₁ + X, где I₁ — объём звукового фрагмента, X — объём служебной информации).
Затем производится повторная запись того же фрагмента в формате моно с частотой дискретизации 16 кГц и 16-битным разрешением. Файл записывается без сжатия и со служебной информацией. Размер файла — 7 МБ (обозначим как I₂ + X). Объём служебной информации в обоих случаях одинаковый. Найдите этот объём (X) в мегабайтах.
Так как I₁ в два раза больше I₂ по частоте дискретизации (32 кГц против 16 кГц), в два раза больше по битному разрешению (32 бита против 16 бит) и в четыре раза больше по количеству каналов (4 против 1), то I₁ = 16I₂. Обозначим I₂ как Y. Тогда I₁ = 16Y.
Получаем систему уравнений:
- 16Y + X = 97
- Y + X = 7
Выражаем X из второго уравнения: X = 7 — Y. Подставляем в первое уравнение:
16Y + 7 — Y = 97
15Y = 90
Y = 6
X = 7 — 6 = 1
Объём служебной информации составляет 1 МБ.
Задание №12: Редактор и простое число
Программа для редактора получает на вход строку, начинающуюся с символа «>» и содержащую 23 единицы, N цифр 2 и 25 цифр 3, расположенных в произвольном порядке. Найдите наименьшее значение N, при котором сумма числовых значений цифр результирующей строки является простым числом.
Расположение цифр в исходной строке не влияет на результат, так как алгоритм заменяет все единицы на единицы, все двойки на двойки и все тройки на тройки.
Алгоритм программы:
Пока в строке есть «>» и «1», «>» и «2», или «>» и «3»:
- Замена «>» и «1» на «1>»
- Замена «>» и «2» на «>1»
- Замена «>» и «3» на «>11»
Перебираем значения N от 1 до 100. Для каждого N создаём исходную строку: S = «>23 единицы + N двоек + 25 троек». Применяем алгоритм. Получаем строку, состоящую из символов «>» и «1». Суммируем числовые значения цифр (исключая «>»), проверяем на простоту.
Функция проверки на простоту:
def is_prime(num):
if num < 2:
return False
for i in range(2, num):
if num % i == 0:
return False
return True
Наименьшее значение N, при котором сумма является простым числом — 3.
Задание №15: Тождество
Для какого наименьшего целого неотрицательного числа a выражение 3m + 4n > 63 or (m <= a and n < a) тождественно истинно при любых целых неотрицательных m и n?
Используем функцию all():
def check(a, m, n):
return 3 * m + 4 * n > 63 or (m <= a and n < a)
a = 0
while True:
if all(check(a, m, n) for m in range(1000) for n in range(1000)):
print(a)
break
a += 1
Наименьшее значение a — 21.
Задание №16: Рекурсия и сумма
Найдите значение функции f(24), заданной рекуррентно:
- f(n) = 1, если n < 3
- f(n) = f(n-1) + f(n-2), если n >= 3 и n нечётно
- f(n) = sum(f(i) for i in range(1, n)), если n >= 3 и n чётно
Рекурсивная функция на Python:
def f(n):
if n < 3:
return 1
elif n % 2 != 0:
return f(n - 1) + f(n - 2)
else:
return sum(f(i) for i in range(1, n))
print(f(24))
Результат: 887040
Рассмотрены четыре задания по информатике из вариантов ЕГЭ. Использованы различные подходы к решению, включая перебор, систему уравнений и рекурсию. Применение функций all() и sum() в Python упростило решение некоторых задач.