Un profesor de un amigo dijo que él podía engañar a la función math.sqrt() al sacar la raíz de un número negativo, entonces me dio curiosidad eso que dijo y quise intentarlo.
Me gustaría que me ayudaran para que mi programa dé un resultado correcto, usé el típico problema de fórmula general, aquí está todo lo que he hecho has ahora:
Código Python:
Ver original#! /usr/bin/python2.6
# *.* encoding=utf-8 *.*
from math import sqrt
a = float(input("Primera variable -> "))
b = float(input("Segunda variable -> "))
c = float(input("Tercera variable -> "))
if b == 0 and c == 0:
print("La ecuación no tiene solución")
elif a == 0:
print("Ésta es una ecuación de primer grado\n")
x = -c / b
print("El resultado es %s" %(x))
del x
else:
division = 2 * a
interno = (b ** 2 - 4 * a * c)
#AQUÍ EMPIEZO A ENGAÑAR LA FUNCIÓN math.sqrt()
if interno < 0:
print("\nNo hay soluciones reales")
interno *= -1
discriminante = sqrt(interno)
if interno < 0 and discriminante > 0:
discriminante *= -1
#HASTA AQUÍ TERMINA EL ENGAÑO
x1 = round((-b + discriminante) / division, 2)
x2 = round((-b - discriminante) / division, 2)
if x1 == x2:
print("\nEl resultado de X1 y X2 es %s" %(x1))
else:
print("\nLa solución de X1 es %s y la de X2 es %s" %(x1, x2))
del a,b,c,division,interno,discriminante,x1,x2