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

Из букв Р,О,М,А,Н, составляются 7-буквенные последовательности. Сколько можно составить различных последовательностей, если известно, что в каждой из них на 2-ой позиции стоит буква А или Н, на 4-ой позиции не может стоять гласная буква, а на последнем месте стоит буква О? Каждая буква может встречается любое количество раз или не встречается совсем.

На первом, третьем, пятом и шестом месте может стоять 5 букв, никаких ограничений нет.

На втором месте может стоять одна из двух букв — А или Н, значит два варианта.

На четвертом месте может стоять только согласные буквы, их три — Р,М,Н.

На седьмом месте может стоять только одна буква — О.

Итого: 5 ⋅2⋅5⋅3 ⋅5⋅5⋅1 = 3750  последовательностей.

Решение программой (циклы):

ans = set()
alf = ’РОМАН’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                for x5 in alf:
                    for x6 in alf:
                        for x7 in alf:
                            w = x1 + x2 + x3 + x4 + x5 + x6 + x7
                            if w[1] in ’АН’ and w[3] in ’РМН’ and w[-1] == ’О’:
                                ans.add(w)
print(len(ans))

Решение программой (itertools):

from itertools import product

ans = set()
alf = ’РОМАН’

for w in product(alf, repeat=7):
    w = ’’.join(w)
    if w[1] in ’АН’ and w[3] in ’РМН’ and w[-1] == ’О’:
        ans.add(w)
print(len(ans))

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