Nombres triangulars¶
El terme general per generar la successió de nombres triangulars és el següent:
\(x_n = \dfrac{n^2+n}{2}\)
per \(n>=1\). Per exemple, els vuit primers triangulars serien 1, 3, 6, 10, 15 ,21, 28 i 36.
Dissenya la funció
quants_cal_sumar
que donat un enterv
retorna quants nombres triangulars cal sumar per tal de que la suma arribi av
o més.Desa la funció al fitxer
triangulars.py
. Exemples:>>> quants_cal_sumar(20) 4 >>> quants_cal_sumar(80) 7 >>> quants_cal_sumar(1) 1
Nota
Pots descarregar el fitxer amb tests
quants_cal_sumar.txt
Dissenya la funció
llista_mespetits
que donat un enterv
retorna una llista amb els nombres triangulars més petits o iguals quev
.Desa la funció al fitxer
triangulars.py
. Exemples:>>> llista_mespetits(11) [1, 3, 6, 10] >>> llista_mespetits(28) [1, 3, 6, 10, 15, 21, 28] >>> llista_mespetits(1) [1]
Nota
Pots descarregar el fitxer amb tests
llista_mespetits.txt
Dissenya la funció
mitjana_parells
que donat un enterv
retorna la unfloat
amb la mitjana dels nombres triangulars parells més petits o iguals quev
.Desa la funció al fitxer
triangulars.py
. Exemples:>>> mitjana_parells(11) 8.0 >>> mitjana_parells(37) 20.0
Nota
Pots descarregar el fitxer amb tests
mitjana_parells.txt
Ara considerem la successió alternada de nombres triangulars, a on els termes van canviant de signe i definida com:
\(x_n = (-1)^n\dfrac{n^2+n}{2}\)
per \(n>=1\). Per exemple, els vuit primers triangulars alternats serien -1, 3, -6, 10, -15 ,21, -28 i 36.
Dissenya la funció
suma_alternats
que donat un enterv
retorna una llista amb els primers termes de la successió anterior tals que la seva suma sigui igual o superior av
.Desa la funció al fitxer
triangulars.py
. Exemples:>>> suma_alternats(5) [-1, 3, -6, 10] >>> suma_alternats(20) [-1, 3, -6, 10, -15, 21, -28, 36]
Nota
Pots descarregar el fitxer amb tests
suma_alternats.txt
Dissenya la funció es_triangular que donat un nombre enter,
n
, indiqui si és o no triangular. Un nombre enter,n
, és triangular si existeix una base,b
, tal que \(\sum_{i=1}^b i = n\). La funció ha de retornar un enter corresponent a la base,b
, si el nombre és triangular o bé un zero si no és triangular.Desa la funció al fitxer
triangulars.py
. Exemples:>>> es_triangular (15) 5 >>> es_triangular (27) 0 >>> es_triangular (66) 11 >>> es_triangular (44) 0
Nota
Pots descarregar el fitxer amb tests
es_triangular.txt
Dissenya la funció triangulars que donat un enter,
maxn
, obtingui els nombres triangulars des de l’1 fins amaxn
(ambdós inclosos). La funció ha de construir i retornar una llista de tuples, on cada tuple representi un nombre triangular i consti de dos elements: el nombre triangular,n
, i la base corresponent,b
. Aquesta funció ha de cridar a la funció anterior es_triangular.Desa la funció al fitxer
triangulars.py
. Exemples:>>> triangulars (10) [(1, 1), (3, 2), (6, 3), (10, 4)] >>> triangulars (50) [(1, 1), (3, 2), (6, 3), (10, 4), (15, 5), (21, 6), (28, 7), (36, 8), (45, 9)]
Nota
Pots descarregar el fitxer amb tests
triangulars.txt
Solució
Disposes de solucions al fitxer triangulars.py
.