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!

Comentarios

  1. 1.
    import 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

    ResponderBorrar
    Respuestas
    1. sabias que Python tiene una function nativa para elevar? es uno de los pocos lenguajes que la tiene, aprovechala!("**")
      math.pow() = **

      Buen trabajo!

      Borrar
    2. Cierto! ya lo intenté, gracias, así es mas fácil.

      Borrar
  2. #Ryuk
    import 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))

    ResponderBorrar
    Respuestas
    1. 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.

      resultado [xxx,x , xxx.x , xxx.x , xxx.x]

      Borrar
    2. #Ryuk
      import 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))))

      Borrar
    3. 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

      Borrar
    4. pero asi como esta podia explicar mejor lo que mi programa hace

      Borrar
    5. Me 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!

      Borrar
  3. import math
    x = [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)

    ResponderBorrar
    Respuestas
    1. Hola Davids, muy buena solucion!
      en 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!

      Borrar
  4. import math
    p=[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

    ResponderBorrar
    Respuestas
    1. 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".
      Buen Trabajo!

      Borrar
  5. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  6. #Espacio hexadimensional
    ((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

    ResponderBorrar
    Respuestas
    1. 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.
      Buen Trabajo!

      Borrar
  7. import math
    l1=[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))

    ResponderBorrar
    Respuestas
    1. bien hecho!, normalmente cuando nombramos variables lo hacemos con minusculas, y cuando son constantes son con mayusculas.

      Borrar
  8. import math
    p1=[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))

    ResponderBorrar
    Respuestas
    1. bien hecho!
      En tu for loop, si solo pones "len(p1)" en vez de "0,len(p1)"
      tambien te funciona!

      Borrar
  9. import math
    math.sqrt(((1-3)**2)+((2-5)**2)+((3-7)**2)+((7-4)**2)+((8+6)**2)+((10+9)**2))

    resp: 24.392621835300936

    ResponderBorrar
    Respuestas
    1. bien hecho!
      tambien te fallaron algunos simbolos al final, pero el concepto esta bien!

      Borrar

Publicar un comentario

Entradas más populares de este blog

Tarea #3 para Intro

Tarea #2 para Intro

Tarea #4 y #5 para IA