Reclamación: Si a1,⋯,am+1 son números naturales que suman 2m entonces podemos encontrar un subconjunto que sume m.
Prueba: Por inducción.
Si m=1 entonces tenemos dos números naturales, a1,a2 que suman 2. Pero eso sólo puede ser a1=a2=1 y luego a1=1 es el subconjunto.
Supongamos que es cierto para m−1, con m>1. Dado a1,⋯,am+1 números naturales que suman 2m, reduciremos la cuestión a un caso de m−1.
Sabemos que algunos ai=1, ya que de lo contrario, ai≥2 para todos i, y la suma es al menos 2(m+1)>2m.
También sabemos que algunos aj>1, ya que en caso contrario, todos los valores son 1 y la suma es m+1<2m, desde m>1.
Si ai=1 y aj>1, entonces podemos eliminar ai y reemplazar aj con aj−1. Esto nos da m=m−1+1 números naturales que suman 2(m−1). Entonces, por la proposición de inducción, debe tener un subconjunto que sume m−1. Pero luego, al sustituir aj−1 con aj si está en el subconjunto, tenemos un subconjunto que suma m−1 o m. Si m−1, añadimos el 1.
Su solicitud es el caso m=50.
Podemos encontrar a1=a2=⋯=am−1=1 y am=m+1 para conseguir m números que suman 2m sin un subconjunto que se sume a m. Si m es impar, también podría elegir todo ai=2 y no obtener una suma de m.
Podemos mejorar ligeramente este algoritmo para los casos de mayor tamaño aj.
Supongamos que aj>1. Dejemos que u sea el número de valores i con ai=1. Entonces:
2m=m+1∑i=1ai≥aj+u+2(m−u)=aj+2m−u
Así que u≥aj. Eso significa que podemos eliminar aj−1 valores ai=1 y reemplazar aj con 1. Entonces tienes m−(aj−1)+1 números naturales que suman 2m−2(aj−1). Puedes encontrar un subconjunto de estos números que sumen m−(aj−1). Si el subconjunto no contiene el índice j, tomar el complemento para obtener un subconjunto que contenga j. Entonces ese subconjunto funciona para m, también.