Гоша составляет словосочетания длины 7 из пробелов и букв своего имени. При этом никакие две гласные и две согласные не стоят рядом. Словосочетанием считается три слова, разделённых между собой пробелами. Слова не обязательно должны быть осмысленными словами русского языка. Сколько различных словосочетаний может составить Гоша?
Запишем возможные варианты словосочетаний:
здесь количество словосочетаний:
здесь количество словосочетаний:
здесь количество словосочетаний:
здесь количество словосочетаний:
здесь количество словосочетаний:
здесь количество словосочетаний:
Получаем общее количество словосочетаний:
Решение программой (циклы):
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.count(’ ’) == 2:
# Если слово не кончается и не начинается пробелом
# а также не содержит двух пробелов подряд
if w[0] != ’ ’ and w[-1] != ’ ’ and ’ ’ not in w:
w1 = w.replace(’О’, ’А’).replace(’Г’, ’Ш’)
if ’АА’ not in w1 and ’ШШ’ not in w1:
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.count(’ ’) == 2:
# Если слово не кончается и не начинается пробелом
# а также не содержит двух пробелов подряд
if w[0] != ’ ’ and w[-1] != ’ ’ and ’ ’ not in w:
w1 = w.replace(’О’, ’А’).replace(’Г’, ’Ш’)
if ’АА’ not in w1 and ’ШШ’ not in w1:
ans.add(w)
print(len(ans))