2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Задача о суммах подмножеств
Сообщение22.03.2010, 15:15 


24/06/09
21
Постановка задачи:
Даны числа $m,n\in \mathbb{N}$.
Дано множество A состоящее из чисел $a_i\in \mathbb{Z}, i=1,2,... ,n$, $0<\left|a_i\right|<m$.
Найти количество подмножеств множества A с суммой нуль.

Пример:
Пусть $n=200, m=500$.
Генератором случайных чисел сгенерировано множество A, состоящее из $200$ чисел:
Код:
440, -276, 436, -494, -154, 157, 24, 450, -208, 177, 345, -392, -143, -411, -67, -88, -152, 444, 145, 420, 416, -122, -202, 251, -52, 19, 210, -443, -475, 292, 127, 390, -288, 163, -87, -254, 185, -119, -58, 62, -360, 72, 79, 2, 82, 114, -241, -267, 234, -433, 188, -451, -295, -231, -185, -450, -333, 410, 137, -186, 411, 197, -128, 208, 12, -402, 153, 254, -286, -75, 240, -173, -128, -89, -466, -152, 218, 438, 186, -233, -322, 235, 315, 453, 190, -318, 261, 372, -239, -2, 130, 184, 291, -274, -174, 209, -319, -154, -467, 497, -431, 225, -192, -297, 489, 342, -106, -236, -217, 210, 25, 405, -359, -2, -463, 473, -275, -120, -476, -484, -244, 231, 431, -164, 434, 442, 331, 42, 25, -175, 219, 340, 102, -369, 285, 354, -212, 238, 30, 318, 160, 45, -21, -312, -29, 166, -387, -239, 463, 252, -51, -25, 92, 364, -40, 474, 338, -383, -52, -3, -420, 6, -436, -385, 338, -394, -49, 331, 47, -65, -89, -418, -436, 103, -143, 312, 197, 141, 328, 133, -78, -3, -481, -139, -111, 45, -105, 305, 170, -468, 341, -360, 170, 325, 15, -38, 291, -378, 495, -461

Общее количество подмножеств равно $2^{200}$(растет экспоненциально с ростом $n$), провести такое количество итераций на домашней машине было бы напряжно по времени. Но полиномиальным алгоритмом выбраны все с суммой нуль за несколько секунд.
Их оказалось ровно 319 699 935 754 192 743 287 521 894 442 243 867 414 426 644 430 291 392 989 подмножеств (включая пустое).

Олимпиадный вопрос:
Доказать, что данная задача принадлежит классу Р, построив полиномиальный алгоритм ее решения.

 Профиль  
                  
 
 Re: Задача о суммах подмножеств
Сообщение22.03.2010, 16:37 
Заслуженный участник


04/05/09
4587
А что тут олимпиадного?
Классическая задача на применение одного метода.

 Профиль  
                  
 
 Re: Задача о суммах подмножеств
Сообщение23.03.2010, 12:56 


24/06/09
21
Стопудово :oops:, не знал о методах динамического программирования...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group