8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Друг составляет пары чисел, используя цифры от 1 до 6. Первое число состоит из 2 цифр, а второе — из 5. Цифры в каждом из чисел могут использоваться только 1 раз или не использоваться совсем. Сколько различных пар чисел друг может составить?
В первом числе друг может на первую позицию поставить одну из 6 цифр, а на вторую — одну из 5
оставшихся. Значит первое число можно составить различными способами. Во втором числе
на первой позиции может стоять любая из 6 цифр, на второй — любая из 5 оставшихся, на третьей —
любая из 4 оставшихся, на четвёртой — любая из 3 оставшихся и на пятой — любая из 2
оставшихся цифр. Значит второе число можно составить
различными
способами.
Представим, что первые числа — чашки, а вторые числа — блюдца. Сколько различных вариаций кружка+чашка можно составить?
Можно составить различных пар чисел (блюдец с чашкой).
Решение кодом через циклы:
Решение через циклы строится на полном переборе всех возможных комбинаций для каждого числа с учётом уникальности цифр. Сначала создаём пустое множество ans для хранения всех уникальных пар чисел. Определяем строки alf1 = ’123456’ и alf2 = ’123456’ для возможных цифр первого и второго числа. Используем два вложенных цикла для перебора цифр первого числа (x1, x2) и формируем число w1 = x1+x2. Проверяем уникальность цифр с помощью len(w1) == len(set(w1)). Если цифры уникальны, продолжаем перебор второго числа с пятью вложенными циклами (y1, y2, y3, y4, y5), формируем w2 = y1+y2+y3+y4+y5 и проверяем уникальность. Если оба числа соответствуют условиям, добавляем пару (w1, w2) в множество ans. В конце выводим len(ans), что является количеством допустимых пар чисел.
# Создаем множество для хранения уникальных пар чисел ans = set() # Цифры для первого числа alf1 = ’123456’ # Цифры для второго числа alf2 = ’123456’ # Перебор цифр первого числа for x1 in alf1: for x2 in alf1: # Формируем первое число w1 = x1 + x2 # Проверяем, что цифры первого числа уникальны if len(w1) == len(set(w1)): # Перебор цифр второго числа for y1 in alf2: for y2 in alf2: for y3 in alf2: for y4 in alf2: for y5 in alf2: # Формируем второе число w2 = y1 + y2 + y3 + y4 + y5 # Проверяем уникальность цифр второго числа if len(w2) == len(set(w2)): # Добавляем пару в множество ans.add((w1, w2)) # Выводим количество уникальных пар чисел print(len(ans))
Решение кодом через itertools:
Для решения с помощью модуля itertools используем функцию permutations, которая генерирует все перестановки без повторений. Создаём пустое множество ans для хранения уникальных пар, определяем строки alf1 = ’123456’ и alf2 = ’123456’. С помощью permutations(alf1, 2) получаем все перестановки двух цифр для первого числа, аналогично permutations(alf2, 5) для второго числа. Для каждой комбинации объединяем цифры через ”.join() в строки и добавляем пару (x, y) в множество ans. В конце выводим len(ans), что даёт количество допустимых пар чисел.
from itertools import permutations # Создаем множество для хранения уникальных пар чисел ans = set() # Цифры для первого числа alf1 = ’123456’ # Цифры для второго числа alf2 = ’123456’ # Перебор всех перестановок для первого числа for x in permutations(alf1, 2): # Перебор всех перестановок для второго числа for y in permutations(alf2, 5): # Добавляем пару чисел в множество ans.add((x, y)) # Выводим количество уникальных пар чисел print(len(ans))
Специальные программы

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

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

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

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

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

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