Задание базового уровня, на выполнение отводится 4 минуты. Оно проверяет знание основных понятий и методов измерения количества информации.
Условие задачи
Определите количество двенадцатеричных пятизначных чисел, в записи которых ровно одна цифра 7 и не более трёх цифр со значением, превышающим 8.
Решение на языке Python
Для решения задачи воспользуемся языком программирования Python и встроенным модулем itertools.
from itertools import product
k = 0
for w in product('0123456789AB', repeat=5):
w = ''.join(w)
if w[0] != '0' and w.count('7') == 1 and len([digit for digit in w if digit in '9AB']) <= 3:
k += 1
print(k)
Разбор кода
- Импорт модуля: from itertools import product импортирует функцию product для генерации декартовых произведений.
- Инициализация счётчика: k = 0 инициализирует переменную k для подсчёта подходящих чисел.
- Генерация чисел: for w in product(‘0123456789AB’, repeat=5): цикл перебирает все возможные пятизначные двенадцатеричные числа. ‘0123456789AB’ — алфавит двенадцатеричной системы счисления, repeat=5 задаёт длину чисел (5 знаков).
- Проверка условий:
- w[0] != ‘0’: проверяет, что первое число не равно нулю (исключение незначащих нулей).
- w.count(‘7’) == 1: проверяет, что в числе ровно одна семёрка.
- len([digit for digit in w if digit in ‘9AB’]) <= 3: проверяет, что количество цифр, больших 8 (9, A, B), не превышает трёх. Список [digit for digit in w if digit in ‘9AB’] создаётся с помощью list comprehension, отбирая цифры, большие 8. Функция len() считает длину этого списка.
- Увеличение счётчика: k += 1 увеличивает счётчик k для каждого числа, удовлетворяющего условиям.
- Вывод результата: print(k) выводит итоговое количество подходящих чисел.
Результат
Запуск кода даёт ответ: 6747.