Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разделить ряд чисел на два с равными суммами 
:(
    Опции темы
MichaelMPEI
Дата 7.2.2006, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 7.2.2006

Репутация: нет
Всего: нет



Дан ряд случайных чисел. Необходимо его разделить на 2 так, чтобы сумма чисел в каждом из них была одинакова. Простым перебором слишком долго. Может, кто подскажет метод побыстрее?
Заранее спасибо.

PM MAIL   Вверх
knark
Дата 7.2.2006, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 21.1.2006

Репутация: нет
Всего: нет



Сумма чисел где?


smile
PM MAIL   Вверх
MichaelMPEI
Дата 8.2.2006, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 7.2.2006

Репутация: нет
Всего: нет



Сумма чисел в каждом из полученных рядов.
Например есть ряд: 1, 2, 3, 4, 6, 7, 8, 9.
Первый ряд: 1, 2, 8, 9. Сумма 20
Второй ряд: 3, 4, 6, 7. Сумма 20

PM MAIL   Вверх
sergejzr
Дата 8.2.2006, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



исходя из условия у нас есть две суммы А и Б и что что А=Б=общая_сумма/2

То есть Задача сводится к нахождению группы чисел, которая в сумме даст А.

Придётся таки все перебирать на это условие. Это вроде один из подразделов "магического" квадрата. Там тоже только перебор. Но это лучше, чем перебирать по начальному условию.

Ограничения, если числа сгенерены случайно.
Решение отсутствует, если:
Общая сумма всех чисел не кратна 2.
Все числа позитивны и присутсвует число Х, и Х > А -> Разделить будет невозможно.
Добавлено @ 02:27
Цитата(MichaelMPEI @ 7.2.2006, 23:42 Найти цитируемый пост)

Например есть ряд: 1, 2, 3, 4, 6, 7, 8, 9.
Первый ряд: 1, 2, 8, 9. Сумма 20
Второй ряд: 3, 4, 6, 7. Сумма 20

В йтом примере будет работатьтак:

summa= 1+2+3+4+6+7+8+9; //=40;
A=summa/2; //=20

Осталось найти, какие числа из 1, 2, 3, 4, 6, 7, 8, 9 в сумме дадут 20


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
cardinal
Дата 8.2.2006, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 5
Всего: 99



А если A число нечетное, то можно подумать над тем не лепить ли его из нечетных чисел сначала, а лишь потом если не получится работать с четными. Ну и если А четное, то соответственно наоброт.
В данном случае А = 20 значит идем и складываем все четные числа
2+4+6+8... о 20 smile значит больше ничего делать не надо.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
sergejzr
Дата 8.2.2006, 02:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



только вопрос, возможны ли там негативные числа также и/или одинаковые


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
SoWa
Дата 8.2.2006, 05:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Я считаю что все просто:
Сортируешь ряд исходных чисел, потом первое и последнее счисло в ряд1, второе и предпоследнее в ряд2, третье и ... в ряд1 ит.д.
Потом уже перебором корректируешь эти ряды.
Для ряда 1 2 3 4 5 6 7 8 9 будет так:
ряд1: 1 9 3 7
ряд2: 2 8 4 6
Корректировки в данном случае не нужны.
В другом случае могут быть.
Добавлено @ 05:59
Цитата(sergej.z @ 8.2.2006, 02:23 Найти цитируемый пост)

Решение отсутствует, если:
Общая сумма всех чисел не кратна 2.

Да. Если это так, то корректировки делать бесполезно.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Akina
Дата 8.2.2006, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Ну блин же ж... задача о рюкзаке в чистейшем виде... чего спрашивать-то?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
SoWa
Дата 8.2.2006, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Цитата(Akina @ 8.2.2006, 10:09 Найти цитируемый пост)

Ну блин же ж... задача о рюкзаке в чистейшем виде... чего спрашивать-то?

Это что такое?
И как решать тогда?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
esperant0
Дата 8.2.2006, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



только перебор это классическая НП полная задача


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
Akina
Дата 9.2.2006, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(SoWa @ 8.2.2006, 21:02 Найти цитируемый пост)

Это что такое?
И как решать тогда?

Поиск никто не отменял. В т.ч. в Инете.

Цитата(esperant0 @ 9.2.2006, 00:07 Найти цитируемый пост)

только перебор это классическая НП полная задача

NP-полная задача с временем O(n)??? ну-ну..


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
esperant0
Дата 9.2.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(Akina @ 9.2.2006, 10:14)
Цитата(SoWa @  8.2.2006,  21:02 Найти цитируемый пост)

Это что такое?
И как решать тогда?

Поиск никто не отменял. В т.ч. в Инете.

Цитата(esperant0 @ 9.2.2006, 00:07 Найти цитируемый пост)

только перебор это классическая НП полная задача

NP-полная задача с временем O(n)??? ну-ну..

http://www.cs.brown.edu/courses/cs051/assign/hw10.sol.ps


Посмотрите тут вторую задачу. Она НП полная, но в то жевремя немного проще задачи, решенной вами за линейное время.

Видимо вы доказали что НП=П.

Поздравляю.


с уважением


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0857 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.