Тема 8. Комбинаторика

8.02 Подсчет количества слов/чисел

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела комбинаторика
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#85463

Гоша составляет восьмизначные числа. Причём рядом не должны стоять цифры с одинаковым остатком от деления на 5, а также на последнем месте может быть только чётная цифра. Сколько чисел может составить Гоша?

Показать ответ и решение

Решение руками

На первое место можем поставить любую из цифр кроме 0, остаётся 9 цифр.

На каждое последующее место, кроме предпоследнего, можем поставить 8 цифр, так как рядом с каждым с любой цифрой не может стоять она сама и вторая цифра с таким же остатком (возможных остатков от деления на 5 всего 5 штук: 0, 1, 2, 3, 4; каждый из них имеют ровно две цифры, например остаток 0 имеют 0 и 5, остаток 1 - 1 и 6 и так далее). На последнем месте может быть любая четная цифра, но также нужно исключить одну цифру с таким же остатком, поэтому их останется 4.

Итоговая формула: 9⋅8 ⋅8 ⋅8⋅8⋅8 ⋅8⋅4 = 9437184

Идея решения через циклы:

Мы составляем восьмизначные числа по следующим правилам: цифры не должны стоять рядом с цифрами, которые имеют одинаковый остаток от деления на 5, а последняя цифра должна быть чётной. Для этого мы выделяем три множества:

- a1 — возможные цифры для первой позиции (1–9), чтобы число не начиналось с нуля;

- a2 — возможные цифры для промежуточных позиций (0–9);

- a3 — возможные цифры для последней позиции (только чётные).

Далее организуем 8 вложенных циклов for, каждый из которых перебирает одну позицию числа. Для каждой последующей цифры проверяем, что её остаток от деления на 5 не совпадает с остатком предыдущей цифры. Если условие нарушается, используем команду continue, чтобы перейти к следующей цифре без увеличения счётчика. Когда мы достигаем последней позиции, проверяем также, что цифра чётная (a3). Если все условия соблюдены, увеличиваем счётчик cnt на 1.

Решение программой с помощью циклов

a1 = "123456789" # Возможные цифры для первой позиции (не ноль)
a2 = "0123456789" # Возможные цифры для промежуточных позиций
a3 = "02468" # Возможные цифры для последней позиции (только чётные)
cnt = 0 # Счётчик для количества допустимых чисел

# 1-я цифра числа
for x1 in a1:
    # 2-я цифра числа
    for x2 in a2:
        if int(x1) % 5 == int(x2) % 5: # Проверяем остаток от деления на 5
            continue # Если совпадает, пропускаем эту цифру
        # 3-я цифра числа
        for x3 in a2:
            if int(x2) % 5 == int(x3) % 5:
                continue
            # 4-я цифра числа
            for x4 in a2:
                if int(x3) % 5 == int(x4) % 5:
                    continue
                # 5-я цифра числа
                for x5 in a2:
                    if int(x4) % 5 == int(x5) % 5:
                        continue
                    # 6-я цифра числа
                    for x6 in a2:
                        if int(x5) % 5 == int(x6) % 5:
                            continue
                        # 7-я цифра числа
                        for x7 in a2:
                            if int(x6) % 5 == int(x7) % 5:
                                continue
                            # 8-я цифра числа (последняя, только чётная)
                            for x8 in a3:
                                if int(x7) % 5 != int(x8) % 5: # Проверяем остаток от деления на 5
                                    cnt += 1 # Увеличиваем счётчик допустимых чисел

# Выводим количество допустимых восьмизначных чисел
print(cnt)

Ответ: 9437184

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

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

Бесплатное онлайн-обучение

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

Налоговые вычеты

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

Специальное предложение
для учителей

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

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!