8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Друг составляет пары чисел, используя цифры от 4 до 9. Оба числа состоят из 4 цифр. Каждая из цифр в первом числе может использоваться ровно 1 раз, а во втором любое количество раз, причём второе число не может начинаться с цифры 6, а первое с цифры 7. Сколько различных пар чисел друг может составить?
В первом числе друг может на первом месте поставить любую из цифр, кроме 7, всего таких цифр
5. На второе место можно поставить любую из 5 оставшихся цифр, т.к. одна из них уже
стоит на первом месте. По той же логике, на третье место можно поставить любую из 4
оставшихся цифр, а на четвёртое — любую из 3 оставшихся. Значит первое число можно составить
различными способами. Во втором числе на первом месте может стоять
любая цифра, кроме 6, всего таких цифр 5. На каждой из оставшихся позиций может стоять
любая из 6 цифр. Значит второе число можно составить
различными
способами.
Представим, что первые числа — чашки, а вторые числа — блюдца. Сколько различных вариаций кружка+чашка можно составить?
Можно составить различных пар чисел (блюдец с чашкой).
Идея решения через циклы:
Первое число состоит из 4 цифр, каждая цифра используется ровно один раз. Второе число также 4-значное, но цифры могут повторяться. Первое число не должно начинаться с 7, второе — с 6. Перебираем все возможные комбинации цифр для обоих чисел с помощью вложенных циклов, проверяем условия и добавляем пару чисел во множество для учёта уникальных комбинаций.
Решение кодом через циклы:
# Множество для уникальных пар чисел ans = set() # Допустимые цифры alf = "456789" # Перебор первого числа (цифры уникальные) for x1 in alf: for x2 in alf: for x3 in alf: for x4 in alf: w1 = x1 + x2 + x3 + x4 # Проверка уникальности цифр if len(w1) == len(set(w1)): # Перебор второго числа (цифры могут повторяться) for y1 in alf: for y2 in alf: for y3 in alf: for y4 in alf: w2 = y1 + y2 + y3 + y4 # Проверка условий: первое не с 7, второе не с 6 if w1[0] != "7" and w2[0] != "6": ans.add((w1, w2)) # Вывод количества уникальных пар print(len(ans))
Идея решения через itertools:
Используем permutations для генерации первого числа без повторов и product для второго числа с возможностью повторов. Для каждой пары проверяем условия: первое число не начинается с 7, второе — не с 6. Добавляем уникальные пары в множество для подсчёта.
Решение кодом через itertools:
# Импортируем необходимые функции from itertools import permutations, product # Множество для уникальных пар чисел ans = set() # Допустимые цифры alf = "456789" # Генерация всех уникальных перестановок для первого числа for x in permutations(alf, 4): # Генерация всех комбинаций для второго числа с повторениями for y in product(alf, repeat=4): # Проверка условий: первое не с 7, второе не с 6 if x[0] != "7" and y[0] != "6": ans.add((x, y)) # Вывод количества уникальных пар print(len(ans))
Специальные программы

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

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

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

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

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

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