关于本站
1、基于Django+Bootstrap开发
2、主要发表本人的技术原创博客
3、本站于 2015-12-01 开始建站
最近比较喜欢研究一些数学的东西,今天写一个求解一元二次方程。
一元二次方程是这样的, y=ax2+bx+c。其中a,b,c都是参数,变量只有一个x,最高次数是2。
我们要求解这种方程,当然不是手算,要使用韦达定理求解。这种方程有两个解,分别是(-b+√(b2-4ac))/(2a)和(-b-√(b2-4ac))/(2a)。若b2-4ac<0的时候,则无解。
原理已经有了,那我们可以开始写代码了。
import math def weida(a,b,c): dta=b**2-4*a*c if dta < 0: raise ValueError,'it is invalid' kv=math.sqrt(dta) return (-b+kv)/a/2,(-b-kv)/a/2
导入math模块,可以使用sqrt方法求平方。给定a,b,c三个参数,调用这个函数将返回两个值。加一段代码测试一下:
if __name__=='__main__': try: print weida(1,-2,1) print weida(1,6,8) print weida(4,2,1) except ValueError,e: print e.message
结果返回:
(1.0, 1.0)
(-2.0, -4.0)
it is invalid
最后一个,b2-4ac<0,所以报错。