Форум » Кодирование и декодирование информации » 1904 » Ответить

1904

petrgrishin: (№ 1904) Из букв слова К А Н К А Н составляются 6-буквенные последовательности. Сколько можно составить различных последовательностей, если известно, что в каждой из них содержится не менее 3 согласных? . Рассуждаю так, что если бы не было повторений букв, то было бы 6!, но у нас есть 3 пары букв, значит 6!/8 = 90, аналогичная задача приводится в разборе Р-10 про Машну, но там еще есть доп условие, что рядом не стоят одинаковые буквы, в этой задачи такого нет. В ответе 656

Ответов - 7

Поляков: Не увидел вопроса. Почему бы не посчитать все слова, которые не подходят, и вычесть их число из общего количества? А в условиях КЕГЭ можно и программой взять, это уже совсем тривиально.

petrgrishin: Поляков пишет: Не увидел вопроса. Вопрос как все-таки вышло 656 Если всего переборов с 6 буквами на 6 мест 720, а тут еще и 3 повторяющихся есть

cabanov.alexey: Заметим, что речь НЕ про перестановки. Ориентируемся на буквы К А Н всего слов 36 Без согласных 1 С 1 согласной 6*2 С 2 согласными 6*5/2 * 22 Итого 729 - 1 - 12 - 60 = 656


petrgrishin: cabanov.alexey пишет: Заметим, что речь НЕ про перестановки. А как увидеть, или какие формулировки указывают, что мы можем использоваться только буквы и их не повторять, а когда как здесь, что буквы КАН могут любое кол-во раз встречаться? Как правильно в этом сориентироваться? Буду очень признателен.

polyakovss: petrgrishin пишет: А как увидеть, или какие формулировки указывают, что мы можем использоваться только буквы и их не повторять, а когда как здесь, что буквы КАН могут любое кол-во раз встречаться? Как правильно в этом сориентироваться? Если в условии сказано, что "Маша составляет шестибуквенные слова перестановкой букв слова КАПКАН", то речь идет о перестановках букв в слове. А если в условии говорится, что "Вася составляет 4-буквенные коды из букв У, Л, Е, Й, то эти буквы могут встречаться неоднократно при отсутствии ограничений.

polyakovss: [pre2]from itertools import product p = set(product('КАНКАН',repeat=6)) s = map(lambda x: ''.join(x), p) def f(x): consonants = {'К','Н'} k = 0 for i in x: if i in consonants: k += 1 return k count = 0 for x in s: if (f(x) >= 3 ): count += 1 print(count) [/pre2]

cabanov.alexey: Можно ещё лаконичнее [pre2] def f(x): return x.count('К')+x.count('Н') [/pre2]



полная версия страницы