Это старая версия документа!
''' Ребята составляют 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
''' ''' #https://education.yandex.ru/ege/inf/task/bc22a1e4-4d9f-4514-be43-3b8bd6d3be35 Текстовый файл состоит из символов Y, A, N, D, E и X. Определите в прилагаемом файле минимальное количество идущих подряд символов (длину непрерывной подпоследовательности), среди которых символ E встречается не менее 240 раз. ''' # Программа для решения задачи: минимальная длина подпоследовательности с >= 240 'E' def min_length_with_e(filename, target=240): with open(filename, 'r', encoding='utf-8') as f: s = f.read().strip() n = len(s) count = 0 min_len = float('inf') for i in range(n): if s[i] == 'E': count += 1 if count >= target: # Найти начало текущей подпоследовательности start = i while start >= 0 and s[start] == 'E': start -= 1 current_len = i - start min_len = min(min_len, current_len) return min_len if min_len != float('inf') else 0 # Использование result = min_length_with_e('24.txt') print(f"Минимальная длина: {result}")