Илья составляет слово из букв Р, А, С, Ч, Ё, С, К, А. Все буквы в слове могут повторяться неограниченное число раз. Слово может иметь длину от 3 до 6 букв (включительно).
Сколько слов может составить Илья?
Решение руками
Всего нам дано 8 букв, но буквы А и С повторяются дважды, они считаются одним и тем же символом, поэтому использовать мы можем всего 6 букв.
Подсчитаем трехбуквенные слова. На любой позиции может стоять одна из 6 букв, следовательно всего трехбуквенных слов:
Подсчитаем четырехбуквенные слова. На любой позиции может стоять одна из 6 букв, следовательно всего четырехбуквенных слов:
Подсчитаем пятибуквенные слова. На любой позиции может стоять одна из 6 букв, следовательно всего пятибуквенных слов:
Подсчитаем шестибуквенные слова. На любой позиции может стоять одна из 6 букв, следовательно всего шестибуквенных слов:
Остается только просуммировать получившиеся значения:
Решение через циклы
s = ’РАСЧЁК’ #самое главное - записать алфавит РАСЧЁК, а не РАСЧЁСКА, т.к. в данном случае буквы А;С являются одним и тем же символом
s6 = s5 = s4 = s3 = 0
#слово из 6-ти букв
for z in s:
for x in s:
for c in s:
for v in s:
for b in s:
for m in s:
s6 += 1
#слово из 5-ти букв
for z in s:
for x in s:
for c in s:
for v in s:
for b in s:
s5 += 1
#слово из 4-х букв
for z in s:
for x in s:
for c in s:
for v in s:
s4 += 1
#слово из 3-х букв
for z in s:
for x in s:
for c in s:
s3 += 1
print(s6+s5+s4+s3) #нам подходят все слова длиной от 3 до 6 включительно, значит, мы смело можем сложить все счётчики
Решение через itertools
from itertools import product
count = set()
for i in range(3,7):
for x in product(’РАСЧЁСКА’,repeat = i):
s = ’’.join(x)
count.add(s)
print(len(count))