二次函数的图像性质与一元二次方程根的求解判定
在信息学奥赛中,数学计算与函数模型是设计复杂算法的基础。二次函数 (Quadratic Function) 是最基本也是最常用的非线性函数模型之一:
二次函数的一般形式为:
其抛物线图像可以通过配方法化为顶点式 $y = a(x - h)^2 + k$,其中顶点坐标为:
对称轴方程为 $x = -\frac{b}{2a}$。当 $a > 0$ 时,开口向上,函数有最小值 $k$;当 $a < 0$ 时,开口向下,函数有最大值 $k$。
令 $y = 0$,即得到一元二次方程 $ax^2 + bx + c = 0$。其根的情况完全由判别式 (Discriminant) 决定:
struct Result { int count; double x1, x2; };
Result solveQuadratic(double a, double b, double c) {
double delta = b * b - 4 * a * c;
if (delta > 0) {
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
return {2, x1, x2};
} else if (delta == 0) {
double x = -b / (2 * a);
return {1, x, x};
} else {
return {0, 0, 0}; // 无实根
}
}