Задача: Ольга составляет 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




