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

Максимальная сумма подряд идущих элементов последовательности,т.е. найти максимальное значение величины

18.04.2023, 09:15. Показов 1863. Ответов 7

Студворк — интернет-сервис помощи студентам
В следующих задачах предполагается, что в файле записана последовательность
чисел неизвестной длины (возможно, пустая). Требуется за один просмотр файла
и без запоминания последовательности в массиве определить требуемую характери-
стикупоследовательности.
Программа должна содержать функцию, которая получает в качестве параметра
имя файла (или указатель на файл) и возвращает требуемое значение. Функция main
запрашивает с клавиатуры имя файла, обращается к функции и выводит результат
на экран.

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

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

Найти максимальное количество элементов последовательности, идущих подряд и являющихся простыми числами
условие В последовательности целых чисел найти максимальное количество чисел, идущих подряд, которые обладают свойством Q, и максимальное...

Рекурсия: найти подпоследовательность подряд идущих элементов последовательности, сумма которых минимальна
В данной последовательности чисел найти подпоследовательность подряд идущих элементов, сумма которых минимальна. Реализовать с помощью...

7
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38194 / 21127 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
18.04.2023, 12:18
Как вариант:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def get_max_sum(fname):
    with open("111.txt","r") as fi:
        a=int(fi.readline())
        cur_sum=a
        max_sum=a
        pre_sum=a
        for s in fi:
            a=int(s)
            cur_sum=cur_sum+a
            if cur_sum > pre_sum:
                if cur_sum > max_sum:
                    max_sum=cur_sum
                pre_sum=cur_sum
            else:
                cur_sum=a
                pre_sum=a
                if cur_sum > max_sum:
                    max_sum=a
    return max_sum
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
18.04.2023, 14:03
алгоритм Кадане.

Добавлено через 4 минуты
что то вроде этого:
Python
1
2
3
4
5
6
7
8
9
10
11
from math import inf
 
with open('222.txt') as f:
    cur_sum = int(f.readline())
    max_sum = cur_sum
    for x in f.readlines():
        cur_sum += int(x)
        if cur_sum < 0:
            cur_sum = 0
        max_sum = max(max_sum, cur_sum)
print(max_sum)
0
 Аватар для DaraChernyshova
2 / 2 / 0
Регистрация: 06.03.2021
Сообщений: 248
21.04.2023, 10:09  [ТС]
Catstail,

Что пошло не так, почему не получается вывести?


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def get_max_sum(fname):
    with open("111.txt","r") as fi:
        a=int(fi.readline())
        cur_sum=a
        max_sum=a
        pre_sum=a
        for s in fi:
            a=int(s)
            cur_sum=cur_sum+a
            if cur_sum > pre_sum:
                if cur_sum > max_sum:
                    max_sum=cur_sum
                pre_sum=cur_sum
            else:
                cur_sum=a
                pre_sum=a
                if cur_sum > max_sum:
                    max_sum=a
    print (max_sum)
    return max_sum
 
get_max_sum("111.txt")
[student@ns146 ~]$ python3 sum.py
Traceback (most recent call last):
File "sum.py", line 22, in <module>
get_max_sum("111.txt")
File "sum.py", line 3, in get_max_sum
a=int(fi.readline())
ValueError: invalid literal for int() with base 10: '11 12 3 5 6 12 4 5 \n'
[student@ns146 ~]$
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38194 / 21127 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
21.04.2023, 10:18
Цитата Сообщение от DaraChernyshova Посмотреть сообщение
Что пошло не так
в файле числа должны быть по одному в строке

https://onlinegdb.com/M3gFyl0Kos
0
 Аватар для DaraChernyshova
2 / 2 / 0
Регистрация: 06.03.2021
Сообщений: 248
21.04.2023, 15:44  [ТС]
Catstail, ясно, благодарю

Добавлено через 7 минут
Catstail, можете мне, пожалуйста, объяснить смысл этой задачи. Выглядит так, будто она просто считает все числа файла, и выдает за максимальную сумму. Среди чего ищется эта максимальная сумма?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38194 / 21127 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
21.04.2023, 18:04
Лучший ответ Сообщение было отмечено DaraChernyshova как решение

Решение

Цитата Сообщение от DaraChernyshova Посмотреть сообщение
объяснить смысл этой задачи
- смысл задачи - найти максимальную сумму подряд идущих элементов. Может, смысл решения? Вставляем отладочную печать:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def get_max_sum(fname):
    with open("111.txt","r") as fi:
        a=int(fi.readline())
        cur_sum=a
        max_sum=a
        pre_sum=a
        for s in fi:
            a=int(s)
            cur_sum=cur_sum+a
            print("оч.элемент=",a,"текущая сумма=",cur_sum,"предыдущая сумма=",pre_sum,"макс. сумма=",max_sum)
            if cur_sum > pre_sum:
                if cur_sum > max_sum:
                    max_sum=cur_sum
                pre_sum=cur_sum
            else:
                cur_sum=a
                pre_sum=a
                if cur_sum > max_sum:
                    max_sum=a
    return max_sum
    
print(get_max_sum("111.txt"))
Вывод:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
оч.элемент= 2 текущая сумма= 3 предыдущая сумма= 1 макс. сумма= 1
оч.элемент= 3 текущая сумма= 6 предыдущая сумма= 3 макс. сумма= 3
оч.элемент= -7 текущая сумма= -1 предыдущая сумма= 6 макс. сумма= 6
оч.элемeнт= 3 текущая сумма= -4 предыдущая сумма= -7 макс. сумма= 6
оч.элемент= 4 текущая сумма= 0 предыдущая сумма= -4 макс. сумма= 6
оч.элемент= 5 текущая сумма= 5 предыдущая сумма= 0 макс. сумма= 6
оч.элемент= 6 текущая сумма= 11 предыдущая сумма= 5 макс. сумма= 6
оч.элемент= 7 текущая сумма= 18 предыдущая сумма= 11 макс. сумма= 11
оч.элемент= 8 текущая сумма= 26 предыдущая сумма= 18 макс. сумма= 18
оч.элемент= 0 текущая сумма= 26 предыдущая сумма= 26 макс. cумма= 26
оч.элемент= -2 текущая сумма= -2 предыдущая сумма= 0 макс. сумма= 26
оч.элемент= 8 текущая сумма= 6 предыдущая сумма= -2 макс. сумма= 26
оч.элемент= 9 текущая сумма= 15 предыдущая сумма= 6 макс. сумма= 26
26
Изучай!
1
 Аватар для DaraChernyshova
2 / 2 / 0
Регистрация: 06.03.2021
Сообщений: 248
28.04.2023, 10:21  [ТС]
Catstail, в строке 8 -4 -3 9 выдаёт ошибку, например

Добавлено через 29 секунд
Для -3 -4 7

Тоже. Но это легко сейчас исправлю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2023, 10:21
Помогаю со студенческими работами здесь

Определить максимальное количество подряд идущих положительных элементов последовательности
Дана вещественная таблица a, a,...,a. Определить максимальное количество подряд идущих положительных элементов последовательности, не...

Определите максимальное количество подряд идущих положительных элементов последовательности
Здравствуйте. Я на этом сайте новичок. Если этот вопрос уже задавался ранее, то не ругайте сильно. :) Вот какая проблема: Сформируйте...

Определить максимальное количество положительных элементов последовательности, идущих подряд
Дано: массив вещественных чисел А. Определить максимальное количество положительных элементов последовательности, идущих подрят и не...

сумма наибольшей возрастающей последовательности подряд идущих элементов
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru