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

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

Задача 1#85467

Виктор составляет слова длины 6 из букв русского алфавита в верхнем и нижнем регистрах. Все составляемые слова являются палиндромами, в которых все буквы могут встречаться любое количество раз, а символ Й может стоять только рядом с другим символом Й. Сколько слов может составить Виктор?

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

Решение:

from itertools import product

# Алфавит в верхнем регистре
s = ’АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ’
# Добавляем также алфавит в нижнем регистре
s = s + s.lower()
cnt = 0

# Палиндром - значит последние 3 символа это перевернутые первые 3 символа
# значит можем составить только первую половину и мысленно её продублировать и развернуть
for i in product(s, repeat=3):
    word = ’’.join(i)
    # Нужно пропустить неподходящие слова:
    # **Й -> **ЙЙ** - подходит
    # *Й* -> *Й**Й* - не подходит
    # Й** -> Й****Й - не подходит
    # *ЙЙ -> *ЙЙЙЙ* - подходит
    # Й*Й -> Й*ЙЙ*Й - не подходит
    # ЙЙ* -> ЙЙ**ЙЙ - подходит
    # ЙЙЙ -> ЙЙЙЙЙЙ - подходит
    # Делаем вывод, что не подходят слова с одной Й, у которых она не на последнем месте,
    # а также с двумя Й, которые не стоят рядом (в центре не Й)
    if ’Й’ in word:
        if word.count(’Й’) == 1 and word[-1] != ’Й’ or word.count(’Й’) == 2 and word[1] != ’Й’:
            continue
    cnt += 1

print(cnt)

Ответ: 278981

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

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

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

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

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

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

Бесплатное обучение
в Школково

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

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

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

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

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

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

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

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