8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Друг составляет пятизначные числа, используя цифры от до
включительно. Цифры в числе могут
использоваться только один раз или не использоваться совсем. Число начинается с цифры
.
Сколько различных чисел, имеющих ровно три подряд идущие четные цифры, друг может
составить?
Решение руками
Первой цифрой числа является , она нечётная. Значит либо на
,
и
месте в слове должны
стоять чётные цифры, либо на
,
и
, всего
варианта. Изначально у нас есть
четных цифр,
после того, как мы поставим любую из них, на второе место мы сможем поставить лишь одну из
оставшихся цифр,а на третье — одну из
оставшихся. В обоих случаях мы используем
цифры, тогда на последнее оставшееся место в числе можно поставить любую из
оставшихся нечетных цифр. Значит друг может составить
различных
чисел.
Идея решения через циклы:
Перебираем все возможные 5-значные числа из цифр "0123456789"с помощью вложенных циклов. Каждая цифра может встречаться только один раз, поэтому проверяем уникальность через множество. Проверяем условие: число должно начинаться с цифры "5". Для каждой комбинации проверяем наличие ровно трёх подряд идущих чётных цифр: - Составляем список всех 3-значных комбинаций чётных цифр (done), хотя бы одна должна быть в числе. - Составляем список всех 4-значных комбинаций чётных цифр (lock), ни одна не должна быть в числе. Если оба условия выполнены, увеличиваем счётчик.
Решение кодом через циклы:
# Все цифры a = "0123456789" # Чётные цифры chet = "02468" # Список тройки чётных цифр (должен быть в числе) done = [x1+x2+x3 for x1 in chet for x2 in chet for x3 in chet] # Список четверки чётных цифр (не должен быть в числе) lock = [x1+x2+x3+x4 for x1 in chet for x2 in chet for x3 in chet for x4 in chet] # Счётчик подходящих чисел count = 0 # Перебор всех 5-значных чисел for x1 in a: for x2 in a: for x3 in a: for x4 in a: for x5 in a: # Формируем число s = x1 + x2 + x3 + x4 + x5 # Проверка: начинается с "5" и все цифры уникальны if s[0] == "5" and len(set(s)) == len(s): # Проверка: есть тройка чётных цифр и нет четверки if any(word in s for word in done) and all(word not in s for word in lock): count += 1 # Вывод результата print(count)
Идея решения через itertools:
Используем функцию permutations для генерации всех 5-значных чисел без повторений. Для каждой перестановки проверяем: число начинается с "5"и содержит ровно тройку подряд идущих чётных цифр. - Проверка выполняется аналогично циклам через списки done и lock. Если условие выполнено, увеличиваем счётчик.
Решение кодом через itertools:
# Импортируем функцию для генерации перестановок from itertools import permutations # Чётные цифры chet = "02468" # Тройки чётных цифр (должны быть) done = [x1+x2+x3 for x1 in chet for x2 in chet for x3 in chet] # Четверки чётных цифр (не должны быть) lock = [x1+x2+x3+x4 for x1 in chet for x2 in chet for x3 in chet for x4 in chet] # Счётчик чисел count = 0 # Перебор всех перестановок 5 цифр for x in permutations("0123456789", r=5): # Формируем число s = "".join(x) # Проверяем, что число начинается с "5" if s[0] == "5": # Проверяем условие: ровно 3 подряд идущие чётные if any(word in s for word in done) and all(word not in s for word in lock): count += 1 # Вывод результата print(count)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!