Tarea#1 para IA
Python para Inteligencia Artificial
Esta es la primera asignacion en preparacion para la clase del martes 20/Oct a las 9:45pm
La Tarea consiste en calcular la "Distancia Euclidiana" entre dos puntos en un espacio de "n" dimensiones
- Para los que Tienen un nivel alto de experiencia en programacion "n" sera un espacio hexadimensional y los 2 puntos son (1,2,3,7,8,10) y (3,5,7,4,-6,-9)
- Para los que Tienen un nivel aceptable de experiencia en programacion "n" sera un espacio tridimensional y los 2 puntos son (3,7,8) y (3,5,-6)
- Para los demas, "n" sera un espacio bidimensional y los 2 puntos son (-8,7) y (3,5)
Pasos a seguir:
- Entrar a Google Colab con su cuenta de Google(la misma que usan para su Gmail)
- Crear un nuevo cuaderno en blanco
- Necesitaran importar el modulo de matematicas (import math)"
- Usar la funcion de raiz cuadrada del modulo mencionado arriba (math.sqrt())"
- y listo! reemplaza lo demas en la ecuacion!
- DATO: en python no necesitas declarar el tipo de variable! dale un nombre y listo! :)
- DATO: en python normalmente declaras una funcion principal llamada main(), pero en Google Colab no necesitas hacer est porque trabaja a base de celdas, es mas facil!
Deben llenar y traduzir la formula que ven abajo a operaciones de python y sacar un resultado. (les desafio a hacerlo en solo 2 lineas sin contar las importaciones y las definiciones de variables)
Comparte tus resultados en un screenshot al grupo de Whatsapp
Tambien copia tu codigo y responde en este post para comparar con la clase!suerte!

1.
ResponderBorrarimport math
math.sqrt(math.pow(1-3,2)+math.pow(2-5,2)+math.pow(3-7,2)+math.pow(7-4,2)+math.pow(8+6,2)+math.pow(10+9,2))
Resultado: 24.392621835300936
2.
import math
math.sqrt(math.pow(3-3,2)+math.pow(7-5,2)+math.pow(8+6,2))
resultado: 14.142135623730951
3.
import math
math.sqrt(math.pow(-8-3,2)+math.pow(7-5,2))
resultado: 11.180339887498949
sabias que Python tiene una function nativa para elevar? es uno de los pocos lenguajes que la tiene, aprovechala!("**")
Borrarmath.pow() = **
Buen trabajo!
Cierto! ya lo intenté, gracias, así es mas fácil.
Borrar#Ryuk
ResponderBorrarimport math
sumatoria = 0
a = [-8, 7]
b = [3, 5]
for i in range(0, len(a)):
sumatoria = sumatoria + (pow((b[i] - a[i]), 2))
print(math.sqrt(sumatoria))
Felicidades por implementar un for loop! te desafio a sacar las coordenadas de una lista. Por ejemplo [[3,8],[3,6],[8,0],[-9,8]] y sacas las distancias de cada punto hacia los demas.
Borrarresultado [xxx,x , xxx.x , xxx.x , xxx.x]
#Ryuk
Borrarimport math
lista = [[3,8],[3,6],[8,0],[-9,8]]
for i in range(0,len(lista)):
x1 = lista[i][0]
y1 = lista[i][1]
for j in range(0,len(lista)):
if i != j:
x2 = lista[j][0]
y2 = lista[j][1]
print('para: ',(x1,y1),(x2,y2))
print('resultado: ',math.sqrt((pow((x2 - x1),2)) + (pow((y2 - y1), 2))))
no es el metodo de impresion pedido pero es lo que pude hacer :-S la idea era crear otra lista y agregar los resultados a la lista y al final imprimir la lista de resultados
Borrarpero asi como esta podia explicar mejor lo que mi programa hace
BorrarMe parece muy bien! no te di una especificacion muy clara, asi que esta bien como lo hiciste. Me gusto que pensaste en "if i!=j:" para no comparar con el mismo elemento y solo con los otros. buen trabajo!
Borrarimport math
ResponderBorrarx = [1, 2, 3,7,8,10]
y = [3, 5,7,4,-6,-9]
dst=[]
dist_eu = math.sqrt(sum([(xi-yi)**2 for xi,yi in zip(x,y)]))
dst.append(dist_eu)
print(dst)
Hola Davids, muy buena solucion!
Borraren especial usando "zip", ya que este es el modo Pythonico de hacerlo!
Tambien me gusto que al final colacaste tu resultado adentro de una lista, esto lo vamos a hacer casi siempre en AI y Machine Learning :) Buen Trabajo!
import math
ResponderBorrarp=[1,2,3,7,8,10]
q=[3,5,7,4,-6,-9]
d=0
for i in range(6):
d= d+(p[i]+q[i])**2
d=math.sqrt(d)
print (d)
Resp: 17.05872210923198
Tu codigo esta bien estructurado, solo te fallo un signo en "d = d+(p[i]+q[i])**2" deberia ser "d = d+(p[i]-q[i])**2".
BorrarBuen Trabajo!
Este comentario ha sido eliminado por el autor.
ResponderBorrar#Espacio hexadimensional
ResponderBorrar((1-3)**2+(2-5)**2+(3-7)**2+(7-4)**2+(8--6)**2+(10--9)**2)**0.5
Resultado: 24.392621835300936
#Espacio tridimensional
((3-3)**2+(7-5)**2+(8--6)**2)**0.5
Resultado: 14.142135623730951
#Espacio bidimensional
((-8-3)**2+(7-5)**2)**0.5
Resultado: 11.180339887498949
Me gusta el enfoque de tu respuesta, si fueramos a calcular estos valores solo una vez, podriamos aprovechar las celdas de Colab y simplemente sacar los resultados como lo hiciste. Interesante que usaste la inversa de la raiz cuadrada.
BorrarBuen Trabajo!
import math
ResponderBorrarl1=[3,7,8]
l2=[3,5,-6]
sum=0
for n in range(3):
sum = sum + (l1[n]-l2[n])**2
print(math.sqrt(sum))
bien hecho!, normalmente cuando nombramos variables lo hacemos con minusculas, y cuando son constantes son con mayusculas.
Borrarimport math
ResponderBorrarp1=[2,3,4,5,6,3,2,1,9,7]
p2=[5,4,3,5,7,3,1,6,9,5]
s=0;
for i in range (0,len(p1)):
s=s+(pow(p2[i]-p1[i],2))
print(math.sqrt(s))
bien hecho!
BorrarEn tu for loop, si solo pones "len(p1)" en vez de "0,len(p1)"
tambien te funciona!
import math
ResponderBorrarmath.sqrt(((1-3)**2)+((2-5)**2)+((3-7)**2)+((7-4)**2)+((8+6)**2)+((10+9)**2))
resp: 24.392621835300936
bien hecho!
Borrartambien te fallaron algunos simbolos al final, pero el concepto esta bien!