Diferencia entre revisiones de «Problema de la suma de subconjuntos»

Contenido eliminado Contenido añadido
YurikBot (discusión · contribs.)
CEM-bot (discusión · contribs.)
m Correcciones menores, (WP:CEM)
Línea 36:
y queremos encontrar un subconjunto cuya suma sea 0. Representemos ´la suma de valores negativos con ''N'' y la suma de valores positivos con ''P''. Definamos la función booleana
 
:''Q''(''i'', ''s'')
 
como ('''verdadera''' o '''falsa''') de
Línea 46:
Es claro que
 
:''Q''(''i'', ''s'') = '''falso'''
 
si ''s''<''N'' o ''s''>''P''.
 
Crear un arreglo para guardar los valores de ''Q(i, s)'' para ''1&le;i&le;n'' y ''N&le;s&le;P''. El arreglo puede ser llenado con una recursión simple.
 
:''Q(1,s)'' = "''s''=0 '''or''' ''x<sub>1</sub>=s''".
Línea 56:
Para ''i''>1,
 
:''Q(i, s)'' = ''Q(i-1,s)'' '''o''' ''Q(i-1,s-x<sub>i</sub>)''.
 
El número total de operaciones aritméticas es
Línea 79:
 
* '''si''', cuando existe un subconjunto que sume ''s'';
* '''no''', si no existe un subconjunto que sume algún total entre ''(1-c)s'' y ''s'' para algunalgún c>0 pequeño;
* cualquier respuesta, si algún subconjunto suma algún total entre ''(1-c)s'' y ''s'' pero ninguno suma ''s''.