Это старая версия документа!
''' Ребята составляют 9-буквенные слова из букв слова СНЕГУРОЧКА. Сколько слов получится составить, если известно, что в каждом слове должно быть ровно 3 согласные? Буквы в слове могут повторяться сколько угодно раз или не встречаться вовсе. ''' from itertools import product cnt = 0 for i in product("СНЕГУРОЧКА", repeat=9): w = "".join(i) n = 0 m = 0 for j in w: if j in "ЕУОА": n += 1 elif j in "СНГРЧК": m += 1 if n > 6 or m > 3: break if m == 3: #print(w) cnt += 1 if cnt % 100000 == 0: print(w) print(cnt)
Дано: Слово «снегорочка» (9 букв) Нужно составить 9-буквенные слова В каждом слове ровно 3 согласные Буквы могут повторяться Решение: В слове «снегорочка»: Согласные: с, н, г, р, ч, к (6 букв) Гласные: е, о, о, а (3 буквы) Нам нужно выбрать 3 позиции из 9 для согласных. Это можно сделать C 9 3 C 9 3
способами:
C 9 3 = 9 ! 3 ! ( 9 − 3 ) ! = 84 C 9 3 = 3!(9−3)! 9! =84 способа На каждую из 3 выбранных позиций можно поставить любую из 6 согласных букв. Значит, для согласных есть 6 3 6 3
вариантов.
На оставшиеся 6 позиций можно поставить любую из 3 гласных букв. Для гласных есть 3 6 3 6
вариантов.
По правилу умножения общее число слов: 84 ⋅ 6 3 ⋅ 3 6 = 84 ⋅ 216 ⋅ 729 = 1360704 84⋅6 3 ⋅3 6 =84⋅216⋅729=1360704 Ответ: 1 360 704 слова можно составить при заданных условиях.
https://education.yandex.ru/ege/inf/task/bb03bae6-eef4-4354-8c1d-8ee6bc886165
#F = open('24_3.txt') #st = F.readline() st = "YDFGYYDFAYYYSDAFY" mx = 0 y = [] for i in range(len(st)): if st[i] == 'Y': y.append(i) for i in range(len(y) - 4): if y[i+4] - y[i] > mx: mx = y[i+4] - y[i] print(mx - 1) mx2 = 0 spl = st.split("Y") print(st) print(spl) for i in range(len(spl)-3): cnt_len = 0 for j in range(i, i + 4): cnt_len += len(spl[j]) print(spl[i:i + 4], cnt_len) mx2 = max(mx2, cnt_len + 3) print(mx2)