Задача #1476

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

Сложнее ЕГЭ

(С. Якунин) Полина составляет слова, переставляя буквы в слове ДЖАВАСКРИПТ. Сколько слов может Полина составить, если известно, что сумма порядковых номеров гласных букв, в каждом из них, равна 11?

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

Ответ

604800

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

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

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

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