python - 我需要解一个二次方程
问题描述
编写一个函数solve_quadratic,当系数作为参数给出时,它以一对(2元组)的形式返回一个通用二次方程的两个解。
它正在返回小数并显示错误?
import math
def solve_quadratic(a, b, c):
d = int(b*b) - int(4*a*c)
sol1 = (-b-math.sqrt(d))/(2*a)
sol2 = (-b+math.sqrt(d))/(2*a)
tup = sol1, sol2;
print(tup)
return tup
def main():
solve_quadratic(1, -3, 2)
solve_quadratic(1, 2, 1)
if __name__ == "__main__":
main()
解决方案
该错误是由 的计算引起的d
,不应将值截断为int
s。
def solve_quadratic(a, b, c):
d = (b*b) - (4*a*c)
sol1 = (-b-math.sqrt(d))/(2*a)
sol2 = (-b+math.sqrt(d))/(2*a)
tup = sol1, sol2;
print(tup)
return tup
您的代码适用于 (1, -3, 2) 和 (1, 2, 1) 的原因是因为这些输入是sb*b
并且没有截断/舍入/精度损失。4*a*c
int
https://en.wikipedia.org/wiki/Quadratic_equation#Quadratic_formula_and_its_derivation
推荐阅读
- asp.net-mvc - 尝试使用来自另一个应用程序的返回类型视图调用控制器操作方法时出现 CORS 错误
- neural-network - 神经元是否总是持有一个标量值
- android - 在调用 onDestory() 之前是否绑定了服务?
- python-3.x - FTP 未连接以“EOFError”结束
- node.js - 节点 postgres 连接性能改进
- javascript - 在反应中获取具有特殊字符和动态变量的路由路径
- django - “Django_content_type 已经存在” - 在数据库恢复后在服务器上运行迁移之后
- java - Flink 作业:获取 InvalidClassException:com.fasterxml.jackson.databind.ObjectMapper
- maven - 如何使用 java11 创建 jenkins 插件
- python - 如何在 Tkinter 中使变量的文本变为粗体?