![]() |
|
Модераторы: Poseidon |
![]()
|
|
| cARDiN4l |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 27.11.2006 Репутация: нет Всего: нет |
Вот дали задание оформить в виде блок-схем. Третий день думаю, ничего не могу поделать... =(((((
Даны натуральные числа n, m и последовательность целых чисел a1,…,an (от a первого до a n-ого). Разработать эффективный алгоритм для того, чтобы найти в заданной последовательности m чисел подряд с наименьшей суммой. Записать алгоритм с помощью алгоритмических конструкций. Это сообщение отредактировал(а) cARDiN4l - 27.11.2006, 22:05 |
|||
|
||||
| Mercator |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.11.2006 Репутация: 1 Всего: 2 |
Извините, я не совсем поняла, с чем у вас проблема: с алгоритмом или с блок-схемой. И что значит - эффективный? То есть, если я правильно поняла постановку задачи, в первую очередь приходит тупое очевидное решение.
Если m=n, тогда решение - сумма всех элементов массива, Если m=1, тогда решение - минимальный элемент массива (самый правый или самый левый, если есть одинаковые, решать вам) Иначе складываем по очереди m элементов, начиная с первого (нам же подряд надо, правильно?), эту сумму берем за минимум, потом складываем m чисел, начиная со второго, если эта сумма меньше, берем ее, как минимум, складываем m чисел начиная со следующего и т.д. Всего таких сложений будет n-m+1. А ну да, конечно можно проще. Считаем сумму первых m элементов, следующая сумма получается прибавлением следующего за m элемента и вычитанием первого в предыдущей m-ke. Короче, если Si - сумма m элементов, начиная с i-того (где i=2 to n-m+1, а S1 - сумма первых m элементов) то она равна Si-1+элемент[i+m]-элемент[i-1]. При получении очередной суммы сравниваем ее с текущей минимальной и меняем, если надо. Надеюсь, что поняла задачу правильно, а блок-схему можно уже и самому нарисовать |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |