Нужна помощь с задачей

Тема в разделе "WASM.ASSEMBLER", создана пользователем Выключи деда, 9 янв 2020.

  1. Выключи деда

    Выключи деда New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2020
    Сообщения:
    3
    Здравствуйте.Нужна помощь с задачей. Честно говоря,я даже не знаю с чего начать,надеюсь вы сможете мне подсказать и объяснить. Вот собственно сама задача.
    Найти положение последовательности из десяти элементов, имеющих самую большую сумму.
     
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    Выключи деда,
    Найти десять элементов, которые дадут самую большую сумму ― это понятно ― сортируем массив по возрастанию, выбираем десять последних элементов, они и дадут максимальную сумму, но как искать
    это совсем не понятно ― просто бессмысленный набор слов :scratch_one-s_head:Адреса этих элементов что-ли? Допустим у нас 15 элементов в массиве, подсчитываем сумму первых 10 элементов, запоминаем сумму в переменной и запоминаем номер первого элемента, сдвигаемся на один элемент, подсчитываем сумму с элемента под номером #2 до элемента под номером #11, сравниваем с сохраненной суммой, если больше, тогда запоминаем сумму и номер первого элемента последовательности, опять сдвигаемся на один элемент, подсчитываем сумму с элемента под номером #3 до элемента под номером #12, сравниваем с сохраненной суммой, если больше, тогда запоминаем, опять сдвигаемся и так до тех пор пока последним элементом этой десятки не окажется элемент с номером #15
     
    Выключи деда нравится это.
  3. Bedolaga

    Bedolaga Member

    Публикаций:
    0
    Регистрация:
    10 июл 2019
    Сообщения:
    131
    Странный выбор форума... ну да ладно... патчеры ведь заходят на кибер тоже....:dance3:
    Mikl___, тут без сортировки надо 100%, вложенные циклы проходят, наверное...:good:
     
    Выключи деда нравится это.
  4. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    Bedolaga,
    если я прав, то подсчет суммы не нужен, вторая сумма = первая сумма - (значение элемента #1) + (значение элемента #11), для сравнения сумм достаточно сравнить первый и одиннадцатый элемент, если первый меньше ― тогда вторая сумма (с #2 по #11) будет больше
     
    Выключи деда и Bedolaga нравится это.
  5. Bedolaga

    Bedolaga Member

    Публикаций:
    0
    Регистрация:
    10 июл 2019
    Сообщения:
    131
    2 раза прочел....:rofl:
    Подсчет суммы каждый раз, по моему, описать проще....и это тоже подсчет суммы, только завуалированный
     
  6. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.020
    Способ с вычитанием выбывшего элемента и прибавлением нового на порядки ускоряет подбор области кс в файле, медицинский факт. Сравнивать две соседних суммы друг с другом наверное можно по крайним элементам, но только их. То есть в ряду '3 1 1 1 1 1 1 1 1 1 1 2' тупо последовательных сравнений двух соседних кс получится неверный результат.
     
    Последнее редактирование: 9 янв 2020
    Выключи деда нравится это.
  7. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.317
    Решение в лоб, если я правильно понял задачу (массив не сортированный само собой). Проходишь по массиву циклом, от 0 до N - 10, для каждого i внутренним циклом проходишь 10 элементов от i до i + 10, считаешь их сумму, если сумма этих элементов больше сохраненной на предыдущем этапе, то пересохраняешь текущую сумму и пересохраняешь значение i, функция возвращает сохраненное значение i.
     
    Выключи деда нравится это.
  8. LastNoob

    LastNoob Member

    Публикаций:
    0
    Регистрация:
    28 янв 2018
    Сообщения:
    80
    [​IMG]
    Примерно такой алгоритм, если сумма двух соседних элементов.
    Задача очень размыто звучит, если ищешь наибольшую сумму 10 элементов, то это сумма всех элементов, если они положительные, конечно
     
    Выключи деда нравится это.