Автор | Сообщение |
|
Отправлено: 26.04.23 15:45. Заголовок: Не сходиться ответ 17 задание (№ 5066) А. Брейк
(А. Брейк) В файле 17-288.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10 000 до 10 000 включительно. Запишите в ответе количество троек элементов последовательности, в которых семеричные записи всех чисел оканчиваются на разные цифры и хотя бы одно число отрицательно. Затем минимальную разность между максимальным и минимальным числами в таких тройках. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности Ответ: 3889 145 У меня же получилось 3896 145. Где я мог допустить ошибку? Вот код: k = [] a = [int(x) for x in open('17-288.txt')] for i in range(len(a)-2): f = a g = a[i+1] d = a[i+2] h = ((f)%7, (g)%7, abs(d)%7) if len(set(h))==3 and (f<0 or g <0 or d<0): k.append(max(f, g ,d)-min(f, g, d)) print(len(k), min(k))
|
|
|
Ответов - 13
[только новые]
|
|
|
Отправлено: 26.04.23 17:33. Заголовок: def sem(x): c = ..
def sem(x): c = abs(x) a = [] while c>0: a = [c%7] + a c = c//7 return a a = [int(c) for c in open("17-288.txt")] a2 = [] for i in range(len(a)-2): num_1 = sem(a) num_2 = sem(a[i+1]) num_3 = sem(a[i+2]) j = [num_1[-1] if len(num_1)!=0 else 0, num_2[-1] if len(num_2)!=0 else 0, num_3[-1] if len(num_3)!=0 else 0] if (a<0 or a[i+1]<0 or a[i+2]<0) and len(set(j))==3: a2.append(max(a, a[i+1], a[i+2])-min(a, a[i+1], a[i+2])) print(len(a2), min(a2))
|
|
|
|
Отправлено: 26.04.23 17:35. Заголовок: почему-то отсылается..
почему-то отсылается так, но в строчке num_1 = sem(a[тут ай, которая почему-то удаляется сайтом]). Как и в некоторых последующих))
|
|
|
|
Отправлено: 27.04.23 00:36. Заголовок: 1llumi пишет: почем..
1llumi пишет: цитата: | почему-то отсылается так, но в строчке num_1 = sem(a[тут ай, которая почему-то удаляется сайтом]). Как и в некоторых последующих)) |
| В самом начале странички подробно написано почему, и что надо делать, "зри в корень" "Программы "заворачивайте" в тэг "["pre2"]"..."["/pre2"]", при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[ i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом."
|
|
|
|
Отправлено: 26.04.23 18:57. Заголовок: Только сейчас понял,..
Только сейчас понял, где у вас ошибка, поэтому привел свое решение. abs не для всех поставили.
|
|
|
|
Отправлено: 27.04.23 01:07. Заголовок: 1llumi пишет: Тольк..
*PRIVAT*
|
|
|
|
Отправлено: 27.04.23 01:34. Заголовок: Ilya Panov пишет: У..
Ilya Panov пишет: цитата: | У меня же получилось 3896 145. Где я мог допустить ошибку? Вот код: k = [] a = [int(x) for x in open('17-288.txt')] for i in range(len(a)-2): f = a g = a[i+1] d = a[i+2] h = ((f)%7, (g)%7, abs(d)%7) if len(set(h))==3 and (f<0 or g <0 or d<0): k.append(max(f, g ,d)-min(f, g, d)) print(len(k), min(k)) |
| Красивое решение, кстати, его можно записать еще компактнее, например, так: k = [] a = [ int(x) for x in open("17-288.txt") ] for i in range(len(a)-2): t = a[i:i+3] if len(set(abs(x) % 7 for x in t)) == 3: if any( x < 0 for x in t ): k.append(max(t) - min(t)) print(len(k), min(k))
|
|
|
|
Отправлено: 27.04.23 02:36. Заголовок: Спасибо большое всем..
Спасибо большое всем тем, кто решил помочь мне с моей проблемой! Глубочайший вам поклон!
|
|
|
|
Отправлено: 27.04.23 03:27. Заголовок: Ilya Panov пишет: С..
Ilya Panov пишет: цитата: | Спасибо большое всем тем, кто решил помочь мне с моей проблемой! Глубочайший вам поклон! |
| Приятно, не так часто, как хотелось-бы, встречаются столь воспитанные люди! Удачи!
|
|
|
|
Отправлено: 24.06.23 06:00. Заголовок: s= tr=)-min(s)) for..
s=[int(c) for c in open('c:/17-288.txt')] tr=[(max(s[i:i+3])-min(s[i:i+3])) for i in range(len(s)-2) if any(a<0 for a in s[i:i+3]) and len(set([abs(a)%7 for a in s[i:i+3]]))==3] print(len(tr),min(tr))
|
|
|
|
Отправлено: 25.06.23 03:49. Заголовок: Ж пишет: tr=)-min(s..
Ж пишет: цитата: | tr=[(max(s[i:i+3])-min(s[i:i+3])) for i in range(len(s)-2) if any(a<0 for a in s[i:i+3]) and len(set([abs(a)%7 for a in s[i:i+3]]))==3] |
| Компактно и красиво, но для начинающего - несколько сложновато для понимания поскольку тело цикла идет впереди самого цикла,привычнее, когда вначале цикл, а уж затем его тело
|
|
|
|
Отправлено: 25.06.23 17:51. Заголовок: Согласна, что не для..
Согласна, что не для новичков, но для формата егэ в самый раз, т.к. размер кода на егэ имеет чуть ли не решающее значение (во всяком случае для моего сына, который в длинных кодах теряется..) Поэтому с помощью генераторов удалось сильно уменьшить код во всех задачах ЕГЭ, и за год подготовки сын стал легко и уверенно код такого плана воспроизводить. Все 17-е задачи на пары-тройки можно решить в 4 таких строки: считать файл, сделать предподсчет какого-то значения, выбрать пары по условию, распечатать ответ Кстати, так же решаются задачи 27(а) на выбор нескольких чисел, чтобы их сумма, произведение обладали каким-то свойством. Для выбора пар-троек используется combinantions из модуля itertools
|
|
|
|
|
Отправлено: 26.06.23 18:31. Заголовок: Ж пишет: за год под..
Ж пишет: цитата: | за год подготовки сын стал легко и уверенно код такого плана воспроизводить. |
| Это, лично меня, немного настораживает - "стал легко код такого плана воспроизводить" Но, с ругой стороны, согласен, это как с курицей, одни предпочитают ее вначале сварить, а уж потом есть, но есть и такие, кому удобнее ее съесть, а уж затем переваривать...
|
|
|
|
Отправлено: 26.06.23 18:37. Заголовок: Не понял,откуда появ..
Не понял,откуда появились рекламные ролики! Неужели Константин Юрьевич начал нас (форумчан) продавать!?
|
|
|
|