Задача #1478

Комбинаторика

Уровень ЕГЭ

(С. Якунин) Полина составляет слова, переставляя буквы в слове ПАЙТОН. Сколько слов может составить Полина, если известно, что сумма порядковых номеров гласных букв, в каждом из них, равна 6? Буквы нумеруются слева направо, начиная с единицы.

Ответ
Войдите, чтобы история ответов и статистика сохранялись.
Решение Нажми, чтобы открыть

Ответ

96

Код #1. Стандартный перебор. Время работы - 0.003 секунды.

from itertools import permutations
k = 0
for i in permutations('ПАЙТОН', r=6):
s = ''.join(i)
sumpos = 0
for j in range(len(s)):
if s[j]=='А' or s[j]=='О':
sumpos+=(j+1) #порядковый номер на единицу больше, чем индекс
if sumpos==6:
k+=1
print(k)

Код #2. Перебор конфигураций. Время работы - 0.001 секунды.

from itertools import product
k = 0
for i in product('012', repeat=6):
s = ''.join(i)
if s.count('0')==1 and s.count('2')==1 and \
sum(j for j in range(len(s)) if s[j]=='0' or s[j]=='2')+2==6:
k+=4*3*2 #в каждой конфигурации 1 * 1 * 4! вариантов
print(k)
Быстрый переход
Перейти к задаче