2014 dxdy logo

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

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




 
 Задача о суммах подмножеств
Сообщение22.03.2010, 15:15 
Постановка задачи:
Даны числа $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 
А что тут олимпиадного?
Классическая задача на применение одного метода.

 
 
 
 Re: Задача о суммах подмножеств
Сообщение23.03.2010, 12:56 
Стопудово :oops:, не знал о методах динамического программирования...

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group