Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2015, 04:02   #1
AngryProj
Пользователь
 
Регистрация: 27.11.2014
Сообщений: 11
По умолчанию Найти подмножество чисел

Подскажите, пожалуйста, как в заданной последовательности (массиве), найти подмножество чисел, сумма которых дает наибольшее число, являющееся степенью 2.
Непонятно именно то, как выделить подмножество.
AngryProj вне форума Ответить с цитированием
Старый 21.05.2015, 07:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну я думаю перебирать двумя циклами.
Как вот пузырьковая сортировка делается, так и тут. Первый цикл с начала массива, второй с элемента первого цикла. Считать сумму, после второго цикла брать корень.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2015, 15:29   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

думаю, двумя циклами не получится
Ведь нам нужно не два числа найти, а подмножество!

Что-то мне подсказывает, что тут ПОЛНЫЙ перебор всех вариантов понадобится.
А-ля "рюкзак"
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.05.2015, 15:40   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Может ты и прав...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2015, 15:46   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

За квадрат точно можно (ток если подмножество можно представить как непрерывную последовательность элементов массива. Мол с i-того по j-ый)
Poma][a вне форума Ответить с цитированием
Старый 22.05.2015, 22:34   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

А кстати, Серж абсолютно прав.
Если под множеством понимать произвольный набор элементов массива. Будем использовать рюкзак.(тут его преобразовать и использовать только одномернный массив)
тогда получим массив, где элемент говорит можно ли набрать значение равное его индексу.

Кстати, можно подумать в сторону оптимизации по памяти для среднего случая, с помощью деревьев.

Но остается очень важный момент. Откуда начинать отсчет? Можно идти с конца.. только там вычислять индекс, высчитывать его, а потом идти вниз.
Если с начала, то можно идти с единицы, красиво проверять индексы в цикле, но мы пройдем весь массив

Что выбрать?
Poma][a вне форума Ответить с цитированием
Старый 22.05.2015, 22:39   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а если под "подмножеством" понимать
Цитата:
как непрерывную последовательность элементов массива
тогда согласен, решение вполне двумя циклами (за квадрат) находится.


впрочем, что-то мне подсказывает, что автор темы уже потерял к ней интерес, поэтому что является "подмножеством" в данной задаче, мы, скорее всего, так и не узнаем!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана непустая последовательность целых чисел. Найти: Сумму чисел, больших числа x и количество всех чётных чисел maksim97maksim Паскаль, Turbo Pascal, PascalABC.NET 1 09.04.2014 13:59
Дана последовательность вещественных чисел. каждая пара чисел задает границы отрезка. Найти количество целых чисел на отрезках 'studentka' Помощь студентам 6 30.11.2011 18:35
Вводится 10 чисел. Найти среднее арифметическое положительных чисел и произведение отрицательных. Руся93 Помощь студентам 14 02.10.2011 13:12
С\С++ Дана последовательность чисел. Найти количество различных чисел в этой последовательности yuliyayuliya Помощь студентам 1 14.04.2011 06:30
Найти подмножество! Без вас не найду) soleil Помощь студентам 1 19.01.2008 09:49