Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 15.07.2019
Сообщений: 69

Функция которая может считать от 1 до n в списке

07.09.2019, 10:58. Показов 3305. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Входные данные
6 1
2 1 4 3 2 4
Выходные данные
9

В общем задача такая:
в первой строке вводится n домов и i передвижений
во второй n чисел это в каждом которых живет какое-то кол-во жителей, они могут делать i передвижений из дома в дом
нужно определить максимальное кол-во жителей в одном доме при лучшем варианте
Знаю обьяснил не очень, но это максимально коротко если что задавайте вопросы
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#Ввод данных
n, m = map(int, input().split())
a = [int(x) for x in input().split()]
b = m
g = m+1
#Решение
for i in range(m):
    a.append(0)
    a.insert(0,0)
    a.insert(0,0)
for i in range(n):
    r = a[b] + a[b+m] + a[b-m]
    j = a[g] + a[g+m] + a[g-m]
    if r>j:
        p=r
    else:
        p=j
    b+=1
    g+=1
#Вывод данных
print(p)
Этот код работает в случае если i = 1 если он больше 1 то я не знаю что с этим делать

Добавлено через 22 минуты
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#Ввод данных
n, m = map(int, input().split())
a = [int(x) for x in input().split()]
b = m
g = m+1
#Решение
r = a[b] + a[b+m] + a[b-m]
j = a[g] + a[g+m] + a[g-m]
for i in range(m):
    a.append(0)
    a.insert(0,0)
    a.insert(0,0)
for i in range(n):
    if r>j:
        p=r
        j = a[g] + a[g+m] + a[g-m]
    else:
        p=j
        r = a[b] + a[b+m] + a[b-m]
    b+=1
    g+=1
#Вывод данных
print(p)
Вот обновленный код, тот был неправильным
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.09.2019, 10:58
Ответы с готовыми решениями:

Написать функцию, которая будет считать сколько раз заданный элемент встречается в списке
Должны использоватся два параметра, список и элемент заранее спасибо за ответ)

Функция которая определяет количество элементов в списке Р
Написать программу с функциями, которая: 3) определяет количество элементов в списке Р.

Ищу Программу которая может считать информацию с компьютера (при помощи флешки )
Нужна программа которая к примеру закачиваеться на флеху и при вставке в ноутбук сможет скачать тот файл который мне нужен (по заранее...

11
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
07.09.2019, 11:15
ничего не понятно, но очень интересно! продолжай!
0
0 / 0 / 0
Регистрация: 15.07.2019
Сообщений: 69
07.09.2019, 11:56  [ТС]
https://sochisirius.ru/uploads... _otbor.pdf
тут подробнее
Задача глеб и функционалы
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
07.09.2019, 12:45
Лучший ответ Сообщение было отмечено Bluestick как решение

Решение

Bluestick, даже не близко к тому, что ты в топике написал)
Задача интересная, напиши функцию которая для каждого элемента считает сумму вместе с соседями удаленными на i
потом просто применяешь ее для всех элементов списка и находишь максимум
Но это решение в лоб, которое сразу приходит в голову, а можно еще подумать...

Добавлено через 18 минут
по времени и памяти не скажу, ввод значений оставляю тебе, тут сама функция-генератор и с помощью макс находим сколько там соберется этих мутантов
Python
1
2
3
4
5
6
7
8
9
def sum_of_neighbors(a_list: list, step=1):
    for index, element in enumerate(a_list):
        min_position = 0 if index - step < 0 else index - step
        slice_ = a_list[min_position:index + step + 1]
        yield sum(slice_)
 
 
assert max(sum_of_neighbors([2, 1, 4, 3, 2, 4])) == 9
assert max(sum_of_neighbors([7, 2, 1, 1, 3, 5, 7], step=2)) == 17
1
0 / 0 / 0
Регистрация: 15.07.2019
Сообщений: 69
07.09.2019, 13:14  [ТС]
Что-то как-то я не особо понимаю данный код, я новичок прямо зеленый и о таких функциях по типу enumerate yield и assert еще не слышал
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
07.09.2019, 17:29
Bluestick, можно и без них, просто там ограничения по памяти вот и решил генератор заюзать.
Смотри по сути тебе нужны суммы срезов (slice) определенного размера. То есть если шаг =1, то срез будет данная ячейка +ячейка слева (если есть) + ячейка справа(если есть), можно и просто циклами for и срезами все решить.
assert это просто проверка, условие, перед тем как писать код сразу пишешь их, чтобы добиваться их выполнения. Продолжаешь писать код пока ассерты не выполнятся) ТДД своего рода
yield - это фишка пайтон, почитай, а вот enumerate это и новичку надо знать, очень полезная вещь, когда тебе нужны индексы списка
0
0 / 0 / 0
Регистрация: 15.07.2019
Сообщений: 69
08.09.2019, 13:49  [ТС]
Окей, а зачем нужен этот фрагмент
Цитата Сообщение от Welemir1 Посмотреть сообщение
(a_list: list, step=1)
я не особо понимаю зачем нужен : list
И да, это наверное будет выглядит глупо, но я так и не смог сделать вывод, пишу функцию он возвращает
<generator object kek at 0x00000224C6D47048>
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
08.09.2019, 13:55
Цитата Сообщение от Bluestick Посмотреть сообщение
пишу функцию он возвращает
<generator object kek at 0x00000224C6D47048>
Это объект генератора. Объект генератора это нечто (какая-то последовательность) в будущем.
Чтобы получить из будущего настоящее - нужна "машина времени" раскрутка генератора в цикле.
Цитата Сообщение от Bluestick Посмотреть сообщение
: list
Это просто аннотация типа. Она ни на что не влияет в Python (здесь типизация строгая и динамическая) и используется только для указания (информирования читателя кода), какого типа параметры должны быть переданы.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
08.09.2019, 14:05
Лучший ответ Сообщение было отмечено Bluestick как решение

Решение

Цитата Сообщение от Bluestick Посмотреть сообщение
Окей, а зачем нужен этот фрагмент
я сообщаю юзеру, в данном случае тебе что на вход жду список

Цитата Сообщение от Bluestick Посмотреть сообщение
И да, это наверное будет выглядит глупо, но я так и не смог сделать вывод, пишу функцию он возвращает
да это глупо, учитывая что в ассерте есть пример использования! ты или перебирай генератор в цикле или (как и нужно по условию) просто найди в нем максимум, я ж написал выше
Цитата Сообщение от Welemir1 Посмотреть сообщение
max(sum_of_neighbors([2, 1, 4, 3, 2, 4]))
0
0 / 0 / 0
Регистрация: 15.07.2019
Сообщений: 69
08.09.2019, 14:15  [ТС]
Окей, можешь еще обьяснить как работает этот фрагмент кода
Цитата Сообщение от Welemir1 Посмотреть сообщение
min_position = 0 if index - step < 0 else index - step
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
08.09.2019, 14:24
Bluestick, это тернарное выражение, иногда его очень удобно использовать, если не нарушается читаемость кода
Пусть минимальная позиция будет равно 0 если индекс-шаг отрицательны, иначе пусть это будет разница индекса и шага.
аналогично коду
Python
1
2
3
4
if index-step<0:
    min_position = 0
else:
    min_position = index -step
Если ты спрашиваешь зачем вообще это условие - это ограничение чтобы минимальная позиция среза не была отрицательной, так как при это начнет брать с конца списка, а нам это не нужно.
0
0 / 0 / 0
Регистрация: 15.07.2019
Сообщений: 69
09.09.2019, 05:50  [ТС]
К, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.09.2019, 05:50
Помогаю со студенческими работами здесь

Функция, которая находит последний атом в списке из подсписка
помогите написать функцию которая находит последний атом в списке из подсписка (a(b(c(d(e(...)))))

Функция,которая считает количество элементов в списке, больших 10
Помогите пожалуйста

Есть ли функция, которая возвращает пару: минимальный элемент и его номер в списке?
Существует ли &quot;стандартная&quot; функция, которая возвращает пару: минимальный элемент и его номер в списке?

Функция которая будет считать сумму элементов в каждом столбце матрицы
которая будет считать сумму элементов в каждом столбце двухмерного массива и определять на выходе какой столбец содержит максимальную...

Есть ли функция которая может определить сколько бит в байте?
Нужно получить количество бит из байта, может есть готовые функции возвращающие результат?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru