分子加不加括號為什么答案不一樣
一:import math
def quadratic_equation(a, b, c):
??? if b*b-4*a*c>=0:
??????? return (-b+math.sqrt(b*b-4*a*c))/2*a,(-b-math.sqrt(b*b-4*a*c))/2*a??
print quadratic_equation(2, 3, 0)
print quadratic_equation(1, -6, 5)
以上的代碼出來的值錯誤的,但是當把return里面的分子加上括號時候,就答案正確,麻煩大神看一下這兩個return到底有什么不同:
返回錯誤的寫法:return (-b+math.sqrt(b*b-4*a*c))/2*a,(-b-math.sqrt(b*b-4*a*c))/2*a
返回正確的寫法:return (-b+math.sqrt(b*b-4*a*c))/(2*a),(-b-math.sqrt(b*b-4*a*c))/(2*a)
2019-09-24
計算順序不同,前面那串我用x代替。x/2*a表示:x除以2然后乘以2。在我們熟悉的公式里2和a都在分數線下,分數線表示的是除法,所以實際上應該是除以a,寫成x/2/a,或者把2和a相乘后一起除,寫成x/(2*a)。
2019-09-14
計算順序不一樣了吧。錯誤的是先除以二,然后前面那些整體*a,值就不一樣