Задача к ЕГЭ по информатике на тему «подсчет количества слов/чисел» №1

Максим Олегович составляет 6-буквенные слова, в которых есть только буквы М, А, Ш, И, Н, причём в слове должна быть хотя бы одна согласная буква. Все буквы могут встречаться в слове любое количество раз или не встречаться совсем, если соблюдаются условия. Сколько существует таких слов, в которых будет ровно одна гласная буква?

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

 

Из условия мы понимаем, что в слове должно быть 5 согласных букв и одна гласная. Допустим гласная стоит на первом месте, тогда всего таких вариантов 2 * 3 * 3 * 3 * 3 * 3. Но гласная может стоять не только на первом месте, поэтому умножаем это число на 6. Тогда получаем 2 * 3 * 3 * 3 * 3 * 3 * 6 = 2916

 

Решение через itertools

from itertools import product

ans = 0
for i in product(’МАШИН’, repeat=6):
    s = ’’.join(i)
    if s.count(’М’) >= 1 or s.count(’Ш’) >= 1 or s.count(’Н’) >= 1:
        k = s.count(’А’) + s.count(’И’)
        if k == 1: ans += 1
print(ans)

Решение через циклы

a = ’МАШИН’ # наше слово
sogl = ’МШН’ # согласные буквы нашего слова
gl = ’АИ’ # гласные буквы нашего слова

count = 0
# перебор наших букв
for x1 in a:
    for x2 in a:
        for x3 in a:
            for x4 in a:
                for x5 in a:
                    for x6 in a:
                        s = x1+x2+x3+x4+x5+x6 # составляем слово
                        # проверка, что есть хотя бы одна согласная буква и при этом в слове ровно одна гласная буква
                        if sum(s.count(i) for i in sogl) >= 1 and sum(s.count(i) for i in gl) == 1:
                            count += 1
print(count)

Ответ: 2916
Оцените статью
Я решу все!