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

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

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

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

Задача 1#6225

Друг составляет пары чисел, используя цифры от 0 до 9. Первое число состоит из 2 цифр, а второе — из 7. Цифры в каждом из чисел могут использоваться любое количество раз, причём второе число не содержит в себе чётных цифр. Сколько различных пар чисел друг может составить?

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

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

В первом числе друг может на первое место поставить любую из 9  цифр (числа не могут получаться с нуля), а на второе любую из 10  цифр. Значит первое число можно составить 9 ⋅ 10 = 90  различными способами. Во втором числе на каждой из позиций может стоять любая из 5 нечётных цифр. Значит второе число можно составить 5 ⋅ 5 ⋅ 5 ⋅ 5 ⋅ 5 ⋅ 5 ⋅ 5 = 78125  различными способами.

Представим, что первые числа — чашки, а вторые числа — блюдца. Сколько различных вариаций кружка+чашка можно составить?

Можно составить 90 ⋅ 78125 = 7031250  различных пар чисел (блюдец с чашкой).

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

Первое число состоит из 2 цифр, второе — из 7 цифр. Для первого числа первая цифра не может быть 0, поэтому перебираем её среди 1-9, вторую — среди всех цифр 0-9. Для второго числа цифры могут повторяться, но все должны быть нечётными: 1, 3, 5, 7, 9. Используем вложенные циклы для генерации всех комбинаций и увеличиваем счётчик для каждой пары.

Решение кодом через циклы:

# Все цифры
all_num = "0123456789"

# Для первой цифры первого числа (не может быть 0)
all_num_first_place = "123456789"

# Нечётные цифры для второго числа
nechet_num = "13579"

# Счётчик пар чисел
c = 0

# Перебор первого числа
for x in all_num_first_place:  # первая цифра
    for y in all_num:          # вторая цифра
        # Перебор второго числа (7 цифр, все нечётные)
        for z in nechet_num:
            for w in nechet_num:
                for u in nechet_num:
                    for p in nechet_num:
                        for t in nechet_num:
                            for k in nechet_num:
                                for o in nechet_num:
                                    # Увеличиваем счётчик для каждой пары чисел
                                    c += 1

# Вывод результата
print(c)

Ответ: 7031250

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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