Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Meta en 11 Octubre 2010, 16:37 pm



Título: Raíz
Publicado por: Meta en 11 Octubre 2010, 16:37 pm
Hola:

Quiero calcular esta raíz y me sale este error.

Código
  1. from math import sqrt
  2.  
  3.  
  4. x1 = float(raw_input('Ingrese el primer numero con decimal: '))
  5. x2 = float(raw_input('Ingrese el segundo numero con decimal: '))
  6. y1 = float(raw_input('Ingrese el tercer numero con decimal: '))
  7. y2 = float(raw_input('Ingrese el cuarto numero con decimal: '))
  8.  
  9. var1 = sqrt((x1 - x2) * 2 + (y1 - y2) * 2)

Ingrese el primer numero con decimal: 3.0
Ingrese el segundo numero con decimal: 4.0
Ingrese el tercer numero con decimal: 5.0
Ingrese el cuarto numero con decimal: 6.0
Traceback (most recent call last):
  File "/home/acaymo/NetBeansProjects/tema4e2a7/src/tema4e2a7.py", line 31, in <module>
    var1 = sqrt((x1 - x2) * 2 + (y1 - y2) * 2)
ValueError: math domain error

En realidad la raíz es sin los asteriscos.
sqrt((x1 - x2)2 + (y1 - y2)2)
Tampoco funciona.

Saludo.


Título: Re: Raíz
Publicado por: Novlucker en 11 Octubre 2010, 16:44 pm
No veo el error, pero desde ya te digo que se "parte" si pones raíz de un número negativo.

Saludos


Título: Re: Raíz
Publicado por: [L]ord [R]NA en 11 Octubre 2010, 16:48 pm
Estas tratando de sacar la raiz de los cuadrados de la diferencia entre 2 puntos en un plano bidimensional... estas multiplicando por 2, no elevandolo al cuadrado, para elevarlo debes colocar un doble asterisco.

Código
  1. var1 = sqrt((x1 - x2)**2 + (y1 - y2)**2)
  2.  


Título: Re: Raíz
Publicado por: criskapunk en 11 Octubre 2010, 17:10 pm
Otra cosa (No se si tendra mucho que ver), pero la formula no es al reves?

Código
  1. sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)


Título: Re: Raíz
Publicado por: [L]ord [R]NA en 11 Octubre 2010, 17:32 pm
No varia el resultado.