8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Азат составляет пары слов. Первое 3-буквенное слово состоит из букв П, Ш, К, а второе 4-буквенное из букв Д, М, Ш, К. Каждая из букв слов может встречаться в них любое количество раз или не встречаться совсем, причём оба слова должны начинаться с буквы Ш. Сколько различных пар слов может составить Азат?
Решение руками
В первом слове первой буквой должна стоять Ш, а на каждое из 2 оставшихся мест в слове можно
поставить любую из 3 различных букв. Значит первое слово можно составить способами. Во
втором слове первой должна стоять буква Ш, а на каждое из 3 оставшихся мест в слове можно
поставить любую из 4 различных букв. Значит второе слово можно составить
способами.
Представим, что первые слова — чашки, а вторые слова — блюдца. Сколько различных вариаций кружка+чашка можно составить?
Можно составить различных пар слов (блюдец с чашкой).
Идея решения через циклы:
Для первого слова длины 3 организуем 3 вложенных цикла, перебирающих буквы "ПШК". Формируем строку и проверяем, что первая буква равна "Ш". Считаем количество таких слов.
Для второго слова длины 4 организуем 4 вложенных цикла, перебирающих буквы "ДМШК". Также проверяем, что первая буква равна "Ш и подсчитываем количество.
Общее количество пар слов равно произведению количества слов первой группы и второй группы.
Решение кодом через циклы:
# Буквы для первого слова a = "ПШК" # Счётчик слов длины 3 count1 = 0 # Перебор 3-х буквенных слов for x1 in a: for x2 in a: for x3 in a: # Формируем слово s = x1 + x2 + x3 # Проверяем, что первая буква "Ш" if s[0] == "Ш": count1 += 1 # Буквы для второго слова b = "ДМШК" # Счётчик слов длины 4 count2 = 0 # Перебор 4-х буквенных слов for x1 in b: for x2 in b: for x3 in b: for x4 in b: # Формируем слово s = x1 + x2 + x3 + x4 # Проверяем, что первая буква "Ш" if s[0] == "Ш": count2 += 1 # Общее количество пар слов print(count1 * count2)
Идея решения через itertools:
Используем функцию product из модуля itertools для генерации слов с повторениями. Для первого слова перебираем все варианты длины 3 из букв "ПШК". Для второго слова перебираем все варианты длины 4 из букв "ДМШК". В каждом случае проверяем, что слово начинается с "Ш и увеличиваем счётчик. Результат — произведение двух подсчётов.
Решение кодом через itertools:
# Импортируем функцию для декартового произведения from itertools import product # Счётчик слов длины 3 count1 = 0 # Перебираем все варианты слов длины 3 из "ПШК" for x in product("ПШК", repeat=3): # Формируем слово s = "".join(x) # Проверяем условие на первую букву if s[0] == "Ш": count1 += 1 # Счётчик слов длины 4 count2 = 0 # Перебираем все варианты слов длины 4 из "ДМШК" for x in product("ДМШК", repeat=4): # Формируем слово s = "".join(x) # Проверяем условие на первую букву if s[0] == "Ш": count2 += 1 # Общее количество пар слов print(count1 * count2)
Специальные программы

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

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

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

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

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

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