Разбираем комбинаторную задачу из ЕГЭ по информатике [тип № 8]… — Репетитор IT men — TG.ME

📝 Разбираем комбинаторную задачу из ЕГЭ по информатике [тип № 8]

Задача: Ольга составляет 5-⁠буквенные коды из букв О, Л, Ь, Г, А. Каждую букву нужно использовать ровно 1 раз, при этом Ь нельзя ставить первым и нельзя ставить после гласной. Сколько различных кодов может составить Ольга?

Есть два способа решить эту задачу: аналитический и численный метод с помощью программирования (брутфорс по сути). И вот тут такой момент, что руками на черновике можно решить задачу гораздо проще. Потому что если не вспомнить, что в Python есть модуль itertools и функция permutations(). Здесь еще каждому читателю стоит попробовать реализовать свою функцию перестановок и генерации комбинаций букв.

🖥 Код решения:
import itertools

string = "ОЛЬГА"
res = [''.join(p) for p in itertools.permutations(string)]
count = len(res)
print(f'Всего перестановок: {count}')

c = 0
for p in res:
if c == 5:
c = 0
print()
else:
print(f' {p}', end='')
c += 1

for p in res:
# если есть мягкий Ь на первом месте
if p[0] == "Ь":
count -= 1
# если мягкий знак Ь стоит после гласной
for i in range(len(p) - 1):
if (p[i] in ("О", "А")) and (p[i + 1] == "Ь"):
count -= 1

print(f'Кол-во кодов: {count}')

#комбинаторика #информатика #егэ #программирование #python #разбор_задач

💡 Репетитор IT men // @mentor_it
👍12❤6🔥3
July 31, 2026 2.2K 3 41