Николай составляет 4-буквенные коды из букв Н, И, К, О, Л, А, Й. Каждую букву можно использовать любое количество раз, при этом код не может начинаться с буквы Й и должен содержать хотя бы одну гласную. Сколько различных кодов может составить Николай?
Найдём все слова, не начинающиеся с
Ответ: 1866.
Приведём другое решение на языке Python.
import itertools
alphabet = "НИКОЛАЙ"
ar = itertools.product(alphabet, repeat=4) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
flag = True
for i in range(len(e)):
if (e[0] == "Й") or (e.count("И") + e.count("О") + e.count("А") == 0):
flag = False
if flag:
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import product
count = 0
for s in product('НИКОЛАЙ', repeat=4):
slovo = ''.join(s)
if slovo[0] != 'Й':
if any(x in slovo for x in 'ИОА'):
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
s = 'НИКОЛАЙ'
count = 0
for a in s:
for b in s:
for c in s:
for d in s:
slovo = a + b + c + d
if slovo[0] != 'Й':
if any(x in slovo for x in 'ИОА'):
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'Н, И, К, О, Л, А, Й'.Remove(', ').Cartesian(4)
.Where(s->s[1] <> 'Й')
.Where(s->(s.CountOf('И')>0)or((s.CountOf('О')>0))or((s.CountOf('А')>0))
).Count.Print;
end.

