Данное задание проверяет знание основных понятий и методов, используемых при измерении количества информации. Задача относится к комбинаторике и имеет базовый уровень сложности. На её выполнение отводится около 4 минут.
Условие задачи
Определите количество пятизначных чисел в восьмеричной системе счисления, в записи которых только одна цифра 6, при этом никакая нечётная цифра не стоит рядом с цифрой 6.
Решение
В восьмеричной системе счисления используются цифры от 0 до 7. Задача сводится к созданию всех возможных комбинаций пятизначных чисел, содержащих ровно одну шестёрку, при условии, что слева и справа от шестёрки не стоят нечётные цифры (1, 3, 5, 7).
Реализация на Python
from itertools import product
digits = '01234567'
count = 0
for combo in product(digits, repeat=5):
num_str = ''.join(combo)
if num_str.count('6') == 1 and num_str[0] != '0':
six_index = num_str.index('6')
is_valid = True
if six_index > 0 and num_str[six_index - 1] in '1357':
is_valid = False
if six_index < 4 and num_str[six_index + 1] in '1357':
is_valid = False
if is_valid:
count += 1
print(count) # Вывод: 2960
Код использует множество цифр восьмеричной системы digits. Цикл for и функция product генерируют все возможные пятизначные комбинации. Каждая комбинация преобразуется в строку num_str. Проверяются условия:
- num_str.count(‘6’) == 1: ровно одна шестёрка.
- num_str[0] != ‘0’: число пятизначное.
- six_index > 0 and num_str[six_index — 1] in ‘1357’: слева от шестёрки нет нечётной цифры.
- six_index < 4 and num_str[six_index + 1] in ‘1357’: справа от шестёрки нет нечётной цифры.
Если условия выполнены, счётчик count увеличивается. Выводится итоговое значение счётчика – количество подходящих чисел (2960).
Использование Python и модуля itertools упрощает и ускоряет подсчёт, позволяя получить результат за меньшее время, чем при ручном подсчёте. Это демонстрирует преимущество программирования для решения задач комбинаторики на ЕГЭ по информатике.