На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 1
ссылка на сообщение  Отправлено: 12.03.21 11:59. Заголовок: Задание 3221


Сергей составляет 5-буквенные коды из букв Ж, А, Л, Е, Й. Буква Й может использоваться в коде не более одного раза, при этом она не может стоять на первом месте, на последнем месте и рядом с буквой Е. Все остальные буквы могут встречаться произвольное количество раз или не встречаться совсем. Сколько различных кодов может составить Сергей?
Программа:
 
from itertools import product
a=[x for x in product('жалей', repeat=5)]
new=set()
for x in a:
if x.count('й')<=1 and x[0]!='й' and x[-1]!='й' and x.count('йе')==0 and x.count('ей')==0:
new.add(x)
print(len(new))


Какие лишние случаи здесь не учтены? программа выводит число, которое больше чем число в ответе

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]







Сообщение: 391
ссылка на сообщение  Отправлено: 12.03.21 13:06. Заголовок: Ответ


Исправьте
 цитата:
a=[x for x in product('жалей', repeat=5)]

на
 цитата:
a = map(lambda x: ''.join(x), product('жалей',repeat=5))



И можно чуть короче так:
 
from itertools import product
s = map(lambda x: ''.join(x), product('ЖАЛЕЙ',repeat=5))
L=[x for x in s if x.count('Й')<=1 and x[0] != 'Й' and x[-1] != 'Й' and 'ЕЙ' not in x and 'ЙЕ' not in x]
print(len(L))


Спасибо: 1 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 2349
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет