Форум » Кодирование и декодирование информации » Задача 8 №119 » Ответить

Задача 8 №119

kokindos07: Задача: Алексей составляет 5-буквенные слова из букв М, А, Г, И, С, Т, Р. Каждую букву можно использовать не более одного раза, при этом в слове нельзя использовать более одной гласной. Сколько различных кодов может составить Алексей? Решение: [pre2] from itertools import product a=set(map(lambda x: ''.join(x), product('магистр',repeat=5))) count=0 string='магистр' for x in a: if x.count('a')+x.count('и')<=1: for y in string: flag=1 if x.count(y)>1: flag=0 break if flag==1: count+=1 print(count) [/pre2] Какие лишние случаи учтены?

Ответов - 1

polyakovss: Здравствуйте, kokindos07! Вот более короткий вариант решения: [pre2] from itertools import product s = map(lambda x: ''.join(x), product('МАГИСТР',repeat=5)) L=[x for x in s if len(set(x))==5 and (x.count('А') + x.count('И')) <= 1] print(len(L)) [/pre2] А ошибка такая:if x.count('а')+x.count('и')<=1:Вы написали ланинскую "a", а не русскую.



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