Найти - Пользователи
Полная версия: помогите решить задачку пожалуйста
Начало » Python для новичков » помогите решить задачку пожалуйста
1
Mariya251
Оля составляет 5-буквенные слова из букв К, У, С, А, Т, Ь, причём слова
не должны начинаться на мягкий знак и содержать сочетание СУК.
Буквы в слове не должны повторяться. Сколько различных слов может
составить Оля?
py.user.next
Mariya251
Оля составляет 5-буквенные слова из букв К, У, С, А, Т, Ь,
Это называется размещения из шести по пять.
wiki. размещение

Нужно просто составить все размещения и отфильтровать из них только те, которые подходят по критериям.
Критерии задаются в предикате, который применяется для фильтрации.

  
>>> import itertools
>>> 
>>> def q(value):
...     if value[0] == 'Ь':
...         return False
...     if 'СУК' in ''.join(value):
...         return False
...     return True
... 
>>> perm6po5_all = itertools.permutations('КУСАТЬ', 5)
>>> perm6po5_filt = filter(q, perm6po5_all)
>>> out = len(tuple(perm6po5_filt))
>>> out
586
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB