Подсчёт слов: лексикографический список и перебор
Задание 8 · Билет 2 · ЕГЭ по информатике
Условие
Шифр кодового замка представляет собой последовательность из пяти символов, каждый из которых является цифрой от 1 до 6.
Известно, что цифра 3 должна встречаться в коде ровно один раз, а каждая из других допустимых цифр может встречаться любое количество раз или не встречаться совсем, но при этом количество чётных цифр в шифре не превосходит количество нечётных.
Попробуйте программой
Необязательно, но удобно: напишите здесь свой код на Python, который найдёт ответ. Если не получится — откройте решение и вставьте готовую программу одной кнопкой.
Решите программой на Python
в браузереНапишите свой код, который найдёт ответ, и нажмите «Выполнить». Горячая клавиша запуска: Ctrl/⌘ + Enter.
Потренируйся перебирать слова по условию: тренажёр собирает слова в алфавитном порядке и учит находить номер или количество подходящих.
Решение
Решение
открыто шагов: 6 из 6Программа, которая находит ответ:
from itertools import product # product перебирает все наборы цифр
count = 0 # здесь считаем, сколько шифров подойдёт
# перебираем все последовательности длины 5 из цифр 1..6
for code in product(range(1, 7), repeat=5):
if code.count(3) != 1: # цифра 3 должна встречаться ровно один раз
continue # иначе шифр не подходит
even = 0 # сколько в шифре чётных цифр
for x in code: # идём по всем цифрам шифра
if x % 2 == 0: # цифра чётная?
even = even + 1 # увеличиваем счётчик чётных
if even > 5 - even: # чётных должно быть не больше, чем нечётных
continue # иначе шифр не подходит
count = count + 1 # шифр прошёл все условия — считаем его
print(count) # печатаем количество подходящих шифров — это ответ Теория и другие билеты
Разбор с нуля, типовые ошибки, частые вопросы и все билеты задания 8 — на странице задания.