Ростислав составляет слова из букв своего имени РОСТИСЛАВ. Слово должно состоять из 6 букв, каждая буква может встречаться любое число раз и не встречаться вообще. Кроме того, в слове количество согласных букв должно быть больше, чем количество гласных. Сколько различных слов может составить Ростислав?
В нашем наборе 3 гласных и 5 согласных.
Проще будет считать слова именно по количеству гласных букв, так как можно будет рассмотреть меньше случаев.
1) Слова без гласных
Тут всё просто, считаем следующим образом — 5*5*5*5*5*5 = 15625
2) Слова с одной гласной
3*5*5*5*5*5 = 9375, умножаем на 6, тем самым рассматривая гласную на 6 позициях. Получаем 56250.
3) Слова с двумя гласными
Посчитаем перестановки гласных без повторов — 6*5/2! = 15
15 умножаем на 3*3*5*5*5*5, получаем 84375.
Итого, 15625+56250+84375 = 156250.
Решение программой 1:
# Вторую С из набора убираем,
# так как спрашивают про различные слова,
# с двумя С могут быть повторения
s = ’РОСТИЛАВ’
k = 0
for a in s:
for b in s:
for c in s:
for d in s:
for e in s:
for f in s:
w = a+b+c+d+e+f
if (w.count(’О’)+w.count(’И’)+w.count(’А’)) < 3:
k += 1
print(k)
Решение программой 2:
from itertools import product
s = ’РОСТИСЛАВ’
n = 0
p = set()
for x in product(s, repeat = 6):
if (’’.join(x).count(’О’) + ’’.join(x).count(’И’)+’’.join(x).count(’А’)) < 3:
p.add(x)
n += 1
print(len(p))