Руслан составляет 6-буквенные коды из букв Р, У, С, Л, А, Н. Каждую букву нужно использовать ровно один раз, при этом нельзя ставить рядом две гласные. Сколько различных кодов может составить Руслан?
Найдём все слова, в которых учитывается условие, что каждую букву нужно использовать ровно один раз: 6 · 5 · 4 · 3 · 2 · 1 = 720.
Слов, в которых гласные стоят рядом на первом и втором месте, — 2 · 1 · 4 · 3 · 2 · 1 = 48. Также гласные могут стоять рядом на втором и третьем месте, на третьем и четвёртом, на четвёртом и пятом, на пятом и шестом. Значит, всего слов, в которых гласные стоят рядом, — 48 · 5 = 240. Таким образом, ответ — 720 − 240 = 480.
Ответ: 480.
Приведём другое решение на языке Python.
import itertools
alphabet = "РУСЛАН"
vol = "УА"
ar = itertools.permutations(alphabet) #Перестановка
arl = []
for e in ar:
arl.append(list(e))
count = 0
for e in arl:
flag = True
for i in range(len(e)-1):
if e[i] in vol and e[i+1] in vol:
flag = False
if flag:
count += 1
print(count)
Приведём решение Егора Чернецова на языке Python.
print(sum('УА' not in ''.join(p) and 'АУ' not in ''.join(p) for p in __import__('itertools').permutations('РУСЛАН')))
Приведём решение Егора Чернецова на языке Python.
from itertools import permutations
c = 0
for p in permutations('РУСЛАН'):
if 'УА' not in ''.join(p) and 'АУ' not in ''.join(p):
c += 1
print(c)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'Р, У, С, Л, А, Н'.Remove(', ').Permutations(6)
.Count(s->('УА'not in s)and('АУ'not in s))
.Print;
end.

