АНАСТАСИЯ из букв своего имени составляет слова перестановкой исходных букв. Сколько различных слов может составить АНАСТАСИЯ, если первая буква не может быть согласной?
На первое место можем поставить только одну из 5 гласных букв, на второе — одну из 8 оставшихся букв, на третье — одну из 7 оставшихся и так далее.
Также результат нужно поделить на 2, так как в слове две буквы С, и на 3, так как в слове три буквы А.
Решение программой (циклы):
s = ’АНТСИЯ’
count = 0
for x1 in s:
for x2 in s:
for x3 in s:
for x4 in s:
for x5 in s:
for x6 in s:
for x7 in s:
for x8 in s:
for x9 in s:
f = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
a = f.count(’А’) == 3
n = f.count(’Н’) == 1
c = f.count(’С’) == 2
t = f.count(’Т’) == 1
i = f.count(’И’) == 1
y = f.count(’Я’) == 1
if a and n and c and t and t and i and y
and f[0] not in ’НСТ’:
count += 1
print(count)
Решение программой (itertools):
from itertools import permutations
ans = set()
alf = ’АНАСТАСИЯ’
for x in permutations(alf, 9):
if x[0] not in ’НСТ’:
ans.add(x)
print(len(ans))