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

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

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

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





Сообщение: 17
ссылка на сообщение  Отправлено: 11.03.26 10:06. Заголовок: 8 задание 7413 (Минак)


Требование: Определите в этом списке количество слов с чётными номерами, которые содержат как минимум две буквы Р, между которыми стоит одна другая буква (например, РАР или РСР) и при этом не содержат в своей записи ни одной буквы У.

Я поняла так, что не должно быть РРР в слове, а сочетания типа РР?Р и тп допускаются. Но ответ не сходится. У меня 233, в ответе 235. В чем я ошибаюсь?
Вот решение:
 
from itertools import *
from fnmatch import fnmatch

alf = sorted('АЭРОБУС')
mask = '*Р?Р*'
ans = []
for i, s in enumerate(product(alf, repeat=5), 1):
sl = ''.join(s)
if sl.count('У') == 0 and fnmatch(sl, mask):
if i % 2 == 0 and 'РРР' not in sl:
ans.append((i, sl))
print(len(ans))
print(ans)


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


Администратор




Сообщение: 4329
ссылка на сообщение  Отправлено: 13.03.26 10:25. Заголовок: from itertools impo..


 
from itertools import product

A = sorted("АЭРОБУС")

count = 0
i = 1
for w in sorted(product(A, repeat=5)):
s = ''.join(w)
for c in "АЭОБУС":
s = s.replace(c, '.')
if i % 2 == 0 and 'Р.Р' in s and w.count('У') == 0:
count += 1
i += 1

print( count )


___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 1 
ПрофильЦитата Ответить





Сообщение: 18
ссылка на сообщение  Отправлено: 13.03.26 12:27. Заголовок: Здравствуйте, Конста..


Здравствуйте, Константин Юрьевич.
Спасибо за код, но у меня все же остался вопрос: корректно ли включать в ответ вот эти слова: {'РБРРР', 'РРРБР'} (это те два слова, которыми отличается мой ответ от ответа из Вашего решения). Мне кажется, что они все-таки нарушают условие: "как минимум две буквы Р, между которыми стоит одна другая буква". Буду признательна за пояснение к условию.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Сообщение: 4333
ссылка на сообщение  Отправлено: 13.03.26 12:34. Заголовок: Да, включать. Потому..


Да, включать. Потому что там есть "как минимум две буквы Р, между которыми стоит одна другая буква" - цепочка РБР.

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

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