Diem que un vector V té una partició si
i només si es pot dividir en dues parts tals que la suma de cadascuna de
les parts sigui igual a la suma de l’altra. Per dividir entenem que
podem separar el vector en dues parts, tal que si tornem a unir-les,
tornem a tenir el vector original (com si el talléssim per una
posició).
Feu la funció particio(V) tal que, donat un vector
d’enters V, torni cert si i només si V té una
partició.
Per exemple, si tenim:
| V = | 4 | 3 | 2 | 5 | 1 | 1 | 1 | 1 |
la funció tornarà True ja que hi ha una partició del
vector V:
i
tal que la suma de cadascuna de les parts és
.
En canvi, si tenim:
| V = | 1 | 3 | 2 | 5 |
la funció tornarà FALSE, ja que no hi ha cap partició
tal que la suma de totes dues parts sigui igual. Per exemple, si partim
el vector en:
i
,
i
o
i
,
la suma de cadascuna de les parts és diferent.
Un vector V d’enters.
True si i només hi ha una partició del vector
V.
Input
1 3 2 5
Output
False
Input
4 3 2 5 1 1 1 1
Output
True