Максим составляет 5-буквенные слова перестановкой букв слова САПОГ. При этом в слове не могут стоять рядом две гласные и две согласные буквы. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько слов может составить Максим?
Решение руками
В нашем слове 3 согласных и 2 гласных буквы. Единственный вид слова, который удовлетворяет условию выглядит следующим образом: СГСГС , где С — согласная буква, а Г — гласная. На первое место можно поставить одну из 3 согласных букв, на второе место — одну из 2 гласных букв. На третье место можно расположить одну из 2 согласных букв. На 4 и 5 место остается по одной букве. В итоге, получаем ответ:
Решение через циклы
sogl = ’СПГ’ # согласные буквы слова
gl = ’АО’ # гласные буквы слова
count = set()
# единственный вид слова, который удовлетворяет условию выглядит так: СГСГС , где С - согласная буква, а Г - гласная.
for x1 in sogl:
for x2 in gl:
for x3 in sogl:
for x4 in gl:
for x5 in sogl:
s = x1+x2+x3+x4+x5
# проверка, что все буквы различные
if len(set(s)) == len(s):
count.add(s)
print(len(count))
Решение через itertools
from itertools import permutations
count = 0
for x in permutations(’САПОГ’):
s = ’’.join(x)
if (’СП’ not in s) and (’ПС’ not in s) and (’СГ’ not in s) and (’ГС’ not in s) and (’ПГ’ not in s) and (’ГП’ not in s) and (’ОА’ not in s) and (’АО’ not in s):
count += 1
print(count)