Игорь составляет 5-буквенные слова, он может использовать все буквы из слова «ВИШНЯ». При этом каждая буква может встречаться любое количество раз либо не встречаться вовсе. После буквы Ш может идти только гласная буква, а на последнем месте обязательно стоит согласная. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько слов может составить Игорь?
Решение прогой 1
s = ’ВИШНЯ’
n = 0
for z in s:
for x in s:
for c in s:
for v in s:
for b in s:
slovo = z + x + c + v + b
# после Ш по условию идёт лишь гласная
# значит комбинации вида Ш+СОГЛ должны отсутствовать
if (’ШВ’ not in slovo) and (’ШН’ not in slovo) and (’ШШ’ not in slovo) and (
slovo[-1] == ’В’ or slovo[-1] == ’Ш’ or slovo[-1] == ’Н’):
n += 1
print(n)
Решение прогой 2:
from itertools import product
s = ’ВИШНЯ’
n = 0
for x in product(s, repeat=5):
if (’ШВ’ not in ’’.join(x)) and (’ШН’ not in ’’.join(x)) and (’ШШ’ not in ’’.join(x)) and (x[-1] in ’ВШН’):
n += 1
print(n)
Ответ: 1068