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

В матрице найдите наибольшую серию подряд идущих элементов, расположенных по возрастанию

17.07.2023, 20:19. Показов 675. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В матрице размером 5×5 найдите наибольшую серию подряд идущих элементов, расположенных по возрастанию (рассматриваются столбцы матрицы).
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.07.2023, 20:19
Ответы с готовыми решениями:

В данном массиве найдите наибольшую серию подряд идущих элементов, расположенных по возрастанию
В данном массиве найдите наибольшую серию подряд идущих элементов, расположенных по возрастанию. Помогите пожалуйста сделать

Найти в массиве наибольшую серию подряд идущих элементов, расположенных по возрастанию
В данном массиве найдите наибольшую серию подряд идущих элементов, расположенных по возрастанию.

В массиве найдите самую большую серию элементов, расположенных подряд
В данном массиве найдите самую большую серию элементов, расположенных подряд по росту. Добавлено через 12 минут /del

6
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
17.07.2023, 21:19
Лучший ответ Сообщение было отмечено elaborate как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
matrix = [
    [1, 2, 3, 4, 5],
    [2, 3, 4, 5, 6],
    [3, 4, 5, 6, 7],
    [4, 5, 6, 7, 8],
    [5, 6, 7, 8, 9]
]
 
 
max_series = []
for j in range(len(matrix[0])):
    series = []
    for i in range(len(matrix)):
        if i == 0 or matrix[i][j] > matrix[i-1][j]:
            series.append(matrix[i][j])
        else:
            if len(series) > len(max_series):
                max_series = series
            series = [matrix[i][j]]
    if len(series) > len(max_series):
        max_series = series
 
 
for j in range(len(matrix[0])):
    series = []
    for i in range(len(matrix)):
        if i == 0 or matrix[i][j] > matrix[i-1][j]:
            series.append(matrix[i][j])
        else:
            if series == max_series:
                print(f'Максимальная серия в столбце {j+1}: {series}')
            series = [matrix[i][j]]
    if series == max_series:
        print(f'Максимальная серия в столбце {j+1}: {series}')
1
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
18.07.2023, 00:32
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
data = [
[1, 2, 1, 1, 2],
[3, 2, 2, 5, 3],
[9, 8, 3, 6, 4],
[1, 9, 4, 4, 5],
[5, 19, 5, 3, 1]]
 
lst = lst_rez = []
p = -float('inf')
for i in data:
    for j in data:
        if j[data.index(i)] > p:
            lst += [j[data.index(i)]]
            p = j[data.index(i)]
        elif len(lst) > len(lst_rez):
            lst_rez = lst
            lst = [j[data.index(i)]]
    if len(lst) > len(lst_rez):
        lst_rez = lst
    lst = []
    p = -float('inf')
 
print(lst_rez)
Добавлено через 27 минут
чуть подправил
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
data = [
[1, 2, 1, 1, 2],
[3, 2, 2, 5, 3],
[9, 8, 3, 6, 4],
[1, 9, 4, 4, 5],
[5, 19, 5, 3, 1]]
 
lst_rez = []
for i in data:
    p = -float('inf')
    lst = []
    for j in data:
        if j[data.index(i)] > p:
            lst += [j[data.index(i)]]
            p = j[data.index(i)]
    if len(lst) > len(lst_rez):
        lst_rez = lst
    
print(lst_rez)
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
18.07.2023, 09:29
Python
1
2
3
4
5
6
7
8
9
10
from random import randint
n = 5
matr = [[randint(1,5) for j in range(n)] for i in range(n)]
print(*matr, sep='\n')
res = sorted([(0,j) for j in range(n)]
        + [(n,j) for j in range(n)]
        + [(i,j) for i in range(1,n) for j in range(n) if matr[i-1][j] >= matr[i][j]], key=lambda x: (x[1],x[0]))
i_max = max([i for i in range(len(res)-1) if res[i][1] == res[i+1][1]], key=lambda x: res[x+1][0]-res[x][0])
print(f'\nначало {res[i_max]}, конец {res[i_max+1]}:')
print([matr[i][res[i_max][1]] for i in range(res[i_max][0], res[i_max+1][0])])
Добавлено через 30 минут
s_t_r_a_j, что-то она у вас через раз работает, на такой матрице вот так считает:

Python
1
2
3
4
5
6
7
[1, 2, 1, 4, 3]
[5, 3, 5, 4, 2]
[1, 4, 2, 3, 2]
[5, 2, 1, 3, 5]
[3, 5, 2, 1, 1]
 
[2, 3, 4, 5]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from random import randint
n = 5
data = [[randint(1,5) for j in range(n)] for i in range(n)]
print(*data, sep='\n')
print()
 
lst_rez=[]
for i in data:
    p=-float('inf')
    lst=[]
    for j in data:
        if j[data.index(i)] > p:
            lst+=[j[data.index(i)]]
            p=j[data.index(i)]
    if len(lst) > len(lst_rez):
        lst_rez=lst
print(lst_rez)
1
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
18.07.2023, 10:02
idealist, да, все-таки вот так было верно
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
data = [
[1, 2, 1, 4, 3],
[5, 3, 5, 4, 2],
[1, 4, 2, 3, 2],
[5, 2, 1, 3, 5],
[3, 5, 2, 1, 1]]
 
lst_rez = []
 
for i in data:
    lst = []
    p = -float('inf')
    for j in data:
        if j[data.index(i)] > p:
            lst += [j[data.index(i)]]
            p = j[data.index(i)]
        elif len(lst) > len(lst_rez):
            lst_rez = lst
            lst = [j[data.index(i)]]
    if len(lst) > len(lst_rez):
        lst_rez = lst
 
print(lst_rez)
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
18.07.2023, 12:24
s_t_r_a_j, та же фигня:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
data = [
[2, 2, 5, 5, 3],
[1, 3, 5, 4, 2],
[5, 1, 3, 5, 2],
[2, 5, 5, 4, 1],
[4, 2, 3, 1, 3]]
# Выдает [2, 3, 5], что неверно
 
lst_rez = []
for i in data:
    lst = []
    p = -float('inf')
    for j in data:
        if j[data.index(i)] > p:
            lst += [j[data.index(i)]]
            p = j[data.index(i)]
        elif len(lst) > len(lst_rez):
            lst_rez = lst
            lst = [j[data.index(i)]]
    if len(lst) > len(lst_rez):
        lst_rez = lst
print(lst_rez)
1
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
18.07.2023, 18:23
idealist,
Цитата Сообщение от idealist Посмотреть сообщение
s_t_r_a_j, та же фигня:
это я упрощал, упрощал, и доупрощался
все-таки так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
data = [
[2, 2, 5, 5, 3],
[1, 3, 5, 4, 2],
[5, 1, 3, 5, 2],
[2, 5, 5, 4, 1],
[4, 2, 3, 1, 3]]
 
lst_rez = []
 
for i in data:
    lst = []
    p = -float('inf')
    for j in data:
        if j[data.index(i)] > p:
            lst += [j[data.index(i)]]
            p = j[data.index(i)]
        elif len(lst) > len(lst_rez):
            lst_rez = lst
            lst = [j[data.index(i)]]
        else:
            lst = [j[data.index(i)]]
    if len(lst) > len(lst_rez):
        lst_rez = lst
 
print(lst_rez)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.07.2023, 18:23
Помогаю со студенческими работами здесь

Найти серию подряд идущих элементов
Дан целочисленный массив размером n. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии – количество этих элементов....

Найти наибольшую сумму подряд идущих элементов
Даны целые числа n, a1, a2,…, an. Найти наибольшую сумму подряд идущих элементов:)

Найти наибольшую сумму подряд идущих элементов заданной последовательности
Дана последовательность х1,х2,…,хn. Найти наибольшую сумму подряд идущих элементов.

Вычислить наибольшую сумму трёх подряд идущих элементов массива
Напишите программу с использованием подпрограммы для вычисления наибольшей суммы трёх подряд идущих элементов массива A. Входные данные:...

Найдите в матрице самую длинную цепочку подряд идущих нулей по горизонтали и вертикали
Матрица состоит из нулей и единиц. Найдите в ней самую длинную цепочку подряд идущих нулей по горизонтали, вертикали. Удалить...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru