Solució del lliurament 1 G30 d’Ampliació d’Informàtica¶
- Organització:
Secció ETSEIB, Departament de Ciències de la Computació, UPC
- Data:
29 de setembre de 2025
- Durada:
30 minuts
- Copyright:
Reconeixement-CompartirIgual 3.0 No adaptada de Creative Commons
Jocs de proves
Els exemples que compten per la nota són només els que van seguits de
# doctesttag: +TAG=...
>>> from itertools import *
Tests exercici 1¶
>>> from n_tetraedric import n_senars_tetraedrics
>>> it = n_senars_tetraedrics(10)
>>> for t in it: # doctesttag: +TAG=1_tetra
... print(t, end='-')
1-35-165-455-969-1771-2925-4495-6545-9139-
>>> next(it, 'fi') # comprovem que l'iterador s'ha exhaurit
'fi'
>>> it = n_senars_tetraedrics(1)
>>> for t in it: # doctesttag: +TAG=1_tetra
... print(t, end='-')
1-
>>> it = n_senars_tetraedrics(25)
>>> for t in it: # doctesttag: +TAG=1_tetra
... print(t, end='-')
1-35-165-455-969-1771-2925-4495-6545-9139-12341-16215-20825-26235-32509-39711-47905-57155-67525-79079-91881-105995-121485-138415-156849-
>>> import itertools
>>> it = n_senars_tetraedrics(100)
>>> for t in itertools.islice(it, 80, 110): # doctesttag: +TAG=1_tetra
... print(t, end='-')
5564321-5774275-5989445-6209895-6435689-6666891-6903565-7145775-7393585-7647059-7906261-8171255-8442105-8718875-9001629-9290431-9585345-9886435-10193765-10507399-
Test Exercici 2¶
>>> from sel_n_primers import sel_n_primers
>>> it = sel_n_primers(15, lambda x: x % 2 != 0, iter(range(50)))
>>> for n in it: # doctesttag: +TAG=2_sel_n
... print(n, end='-')
1-3-5-7-9-11-13-15-17-19-21-23-25-27-29-
>>> next(it, 'final') # Comprovem que l'iterador s'ha exhaurit
'final'
>>> f = "Només considerarem les paraules més llargues que tinguin més de 6 caràcters".split()
>>> it = sel_n_primers(20, lambda p: len(p)>6, iter(f))
>>> for n in it: # doctesttag: +TAG=2_sel_n
... print(n, end='-')
considerarem-paraules-llargues-tinguin-caràcters-
>>> f = "Només paraules plurals acabades s".split()
>>> it = sel_n_primers(5, lambda p: p[-1]=='s', iter(f))
>>> for n in it: # doctesttag: +TAG=2_sel_n
... print(n, end='-')
Només-paraules-plurals-acabades-s-
>>> it = sel_n_primers(12, lambda x: x > 25, iter(range(100)))
>>> for n in it: # doctesttag: +TAG=2_sel_n
... print(n, end='-')
26-27-28-29-30-31-32-33-34-35-36-37-
>>> import itertools
>>> it = sel_n_primers(13, lambda x: (x*20+7) % 9 == 0, itertools.count())
>>> for n in it: # doctesttag: +TAG=2_sel_n
... print(n, end='-')
1-10-19-28-37-46-55-64-73-82-91-100-109-