Partició. X59362


Statement
 

pdf   zip   main.py

html

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 =43251111

la funció tornarà True ja que hi ha una partició del vector V: [4, 3, 2] i [5, 1, 1, 1, 1] tal que la suma de cadascuna de les parts és 9. En canvi, si tenim:

V =1325

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: [1] i [3, 2, 5], [1, 3] i [2, 5] o [1, 3, 2] i [5], la suma de cadascuna de les parts és diferent.

Observació

Només cal que enviïs el fitxer amb la funció (i les funcions auxiliars que hagis fet) que et demanem i prou. El fitxer main.py et pot servir per a fer la teva solució, però no cal que n’enviïs el contingut.

Entrada

Un vector V d’enters.

Sortida

True si i només hi ha una partició del vector V.

Public test cases
  • Input

    1 3 2 5
    

    Output

    False
    
  • Input

    4 3 2 5 1 1 1 1
    

    Output

    True
    
  • Information
    Author
    Jaume Baixeries
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python