Compare commits

..

2 Commits

Author SHA1 Message Date
Tiago Garcia b5f38ad475
Add Ex5.2 using quicksort
Signed-off-by: Tiago Garcia <tiago.rgarcia@ua.pt>
2024-09-28 17:57:24 +01:00
Tiago Garcia 30df314a2f
Add Ex4
Signed-off-by: Tiago Garcia <tiago.rgarcia@ua.pt>
2024-09-28 17:49:51 +01:00
1 changed files with 31 additions and 20 deletions

View File

@ -1,34 +1,45 @@
#Exercicio 4.1
impar = None
# Exercicio 4.1
impar = lambda x: x % 2 != 0
#Exercicio 4.2
positivo = None
# Exercicio 4.2
positivo = lambda x: x > 0
#Exercicio 4.3
comparar_modulo = None
# Exercicio 4.3
comparar_modulo = lambda x, y: abs(x) < abs(y)
#Exercicio 4.4
cart2pol = None
# Exercicio 4.4
cart2pol = lambda x, y: ((x**2 + y**2)**0.5, sum([((-1)**n * (y/x)**(2*n + 1)) / (2*n + 1) for n in range(100000)]) if x != 0 else 3.141592653589793/2)
#Exercicio 4.5
ex5 = None
# Exercicio 4.5
ex5 = lambda f, g, h: lambda x, y, z: h(f(x, y), g(y, z))
#Exercicio 4.6
# Exercicio 4.6
def quantificador_universal(lista, f):
pass
return [x for x in lista if not f(x)] == []
#Exercicio 4.8
# Exercicio 4.7
def quantificador_existencial(lista, f):
return [x for x in lista if f(x)] != []
# Exercicio 4.8
def subconjunto(lista1, lista2):
pass
return [x for x in lista1 if x in lista2] == lista1
#Exercicio 4.9
# Exercicio 4.9
def menor_ordem(lista, f):
pass
return [x for _ in range(len(lista)) for x in lista if all(f(x, y) for y in lista if x != y)][0]
#Exercicio 4.10
# Exercicio 4.10
def menor_e_resto_ordem(lista, f):
pass
m = menor_ordem(lista, f)
return m, [x for x in lista if x != m]
#Exercicio 5.2
# Exercicio 5.2
def ordenar_seleccao(lista, ordem):
pass
return lista if len(lista) <= 1 else ordenar_seleccao([x for x in lista[1:] if ordem(x, lista[0])], ordem) + [lista[0]] + ordenar_seleccao([x for x in lista[1:] if not ordem(x, lista[0])], ordem)