Алиса составляет 6-буквенные слова из букв М, А, Н, Г, У, С, Т. Каждая из букв может встречаться сколько угодно раз, причём первой буквой не может
Сколько различных слов может составить Алиса?
Приведём решение на языке Python.
from itertools import product
count = 0
for p in product("МАНГУСТ", repeat=6):
if p.count("М") == 2 and p[0]!="А" and p.count("У") >=1:
count+=1
print(count)
Ответ: 9155.
Приведём другое решение на языке Python.
a = {0: "М", 1: "А", 2: "Н", 3: "Г", 4: "У", 5: "С", 6: "Т"}
count = 0
for i in range(0, len(a)):
for j in range(0, len(a)):
for g in range(0, len(a)):
for m in range(0, len(a)):
for n in range(0, len(a)):
for t in range(0, len(a)):
s = a[i] + a[j] + a[g] + a[m] + a[n] + a[t]
if a[i] != 'А' and s.count('М') == 2 and s.count('У') >=1:
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'МАНГУСТ'.Cartesian(6)
.Where(s->s[1]<>'А') // первая буква не А
.Where(s->s.CountOf('У')>=1) // буква У не менее 1 раза
.Where(s->s.CountOf('М')=2) // Ровно две буквы М
.Count.print; // 9155
//тоже в одну строку - выбирай верхний код или нижний
'МАНГУСТ'.Cartesian(6)
.Count(s-> (s[1]<>'А')and(s.CountOf('У')>=1)and(s.CountOf('М')=2) )
.print; // 9155
end.

