Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
4 / 4 / 0
Регистрация: 09.05.2019
Сообщений: 72

Найдите номер последнего локального максимума списка

03.04.2020, 14:12. Показов 8663. Ответов 9

Студворк — интернет-сервис помощи студентам
Создайте список из случайных чисел. Найдите номер его последнего локального максимума (локальный максимум — это элемент, который больше любого из своих соседей)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2020, 14:12
Ответы с готовыми решениями:

Найти номер последнего локального максимума
Дан массив размера N. Найти номер его последнего локального максимума. Локальный максимум — это элемент, который больше любого из своих...

Дано целое число N и набор из N чисел. Найдите номер первого наибольшего и номер последнего наименьшего числа в наборе
Дано целое число N и набор из N чисел. Найдите номер первого наибольшего и номер последнего наименьшего числа в наборе. Помоги с целой...

Найти номер последнего локального максимума
Дан массив целых чисел размера N. Найти номер последнего локального максимума. Локальный максимум – элемент, который больше любого из своих...

9
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
03.04.2020, 20:04
Python
1
2
3
4
5
6
7
8
from random import randint
a = [randint(0,10) for i in range(10)]
a = [-1] + a + [-1]
print(a)
for i in range(-2,-(len(a)),-1):
    if a[i-1]<a[i]>a[i+1]:
        print(a[i])
        break
1
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
03.04.2020, 20:25
codcw, так вроде нужен номер числа, а не само число..
0
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
03.04.2020, 20:47
u235,
Python
1
print((len(a)-2)+(i+1))
тогда так
2
4 / 4 / 0
Регистрация: 09.05.2019
Сообщений: 72
03.04.2020, 21:04  [ТС]
Благодарю, а можете ещё оставить комментарии(подробно) по данному коду !)

Python
1
2
3
4
5
6
7
8
from random import randint
a = [randint(0,10) for i in range(10)]
a = [-1] + a + [-1]
print(a)
for i in range(-2,-(len(a)),-1):
    if a[i-1]<a[i]>a[i+1]:
        print((len(a)-2)+(i+1))
        break
0
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
03.04.2020, 22:15
Лучший ответ Сообщение было отмечено Vladymyr_2020 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
from random import randint #импорт функции randint из модуля random
a = [randint(0,10) for i in range(10)] #выражение списка, где вызываем ф-цию randint "in range(10)", то есть 10 раз
print(a)#вывод a
a = [-1] + a + [-1]#добавим с двух сторон списка -1,
#чтобы при сравнении соседей крайних элементов не вышло путаницы с индексами,
#например мы хотим получить соседей 3 элемента в a=[1,2,3],i=2 набираем
#a[i+1] и a[i-1], в итоге получим ошибку из-за того, что обратились к a[3], это выходит за границы списка,
#то же и с первым эл-том, если набрать a[i-1] при i=0, ошибки не будет, но вернется -1 элемент, то есть последний, что также нежелательно
for i in range(-2,-(len(a)),-1): #цикл по range от -2 до -длины списка, с шагом -1, то есть -2,-3,...,-(len(a)) 
    if a[i-1]<a[i]>a[i+1]: #условие: (a[i] больше соседей) == True
        print((len(a)-2)+(i+1)) #если условие == True, вывести индекс, его получаем через длину -2, потому что два эл-та добавляли с концов,
        #и i+1, потому что при сравнении мы обращались к элементам с конца, а с конца счет идет от -1 а не от 0 как если бы мы перебирали с начала списка
        break #прерывание цикла
1
4 / 4 / 0
Регистрация: 09.05.2019
Сообщений: 72
03.04.2020, 22:21  [ТС]
БЛАГОДАРЮ!!!
0
0 / 0 / 0
Регистрация: 01.01.2021
Сообщений: 2
01.01.2021, 08:39
Я попробовал вот так, вроде всё работает. Список задан изначально, генерировать не требуется. Посмотрите свежим взглядом есть ли ошибка (тестовая среда не принимает)?.

Python
1
2
3
4
5
6
7
8
9
10
11
12
my_list = [1, 12, 56, 34, 23, 34, 28]
def loc_max(my_list):
    i = -2
    answer = 0
    while i > -len(my_list):
        if my_list[i - 1] < my_list[i] and my_list[i] > my_list[i + 1]:
            answer = (i) + len(my_list)
            return answer
            break  
        i -= 1
 
loc_max(my_list)
0
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
02.01.2021, 00:39
Ilich, а если список будет выглядеть так, например?
Code
1
[55, 34]
там двумя сообщениями выше я писал, что может помочь
0
0 / 0 / 0
Регистрация: 01.01.2021
Сообщений: 2
03.01.2021, 10:10
По условиям задачи элементов в любом случае больше двух, можно сделать проверку длину не менее 3 элементов, это понятоно)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.01.2021, 10:10
Помогаю со студенческими работами здесь

Найти номер последнего локального максимума массива
препод задал проги и сказал если нерешу невидать мне зачёта...1ую вроде какрешал но увынеправильно видать( 1)Дан масив размера N.Найти...

Найти номер последнего локального максимума массива
Дан массив N размера.Найти номер его последнего локального максимума(локальный максимум -это элемент,больше любого из своих соседей).

Найти номер последнего локального максимума массива
Дан массив размера N. Найти номер его последнего локального максимума (локальный максимум - это элемент, который больше любого...

Найти номер его последнего локального максимума в массиве.
Дан массив размера N. Найти номер его последнего локального максимума.(Локальный максимум-это элемент,который больше любого из своих...

Дан массив размера N . найти номер его последнего локального максимума
помогите пожалуйста решить задачи по паскалю: 1. дан массив размера N, все элементы которого , кроме одного, упорядочены по убыванию ....


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru