最大四边形面积!Math方法解题(详细!
2024-07-27 18:26:58
发布于:广东
23阅读
0回复
0点赞
最大四边形面积-数学法题解
前言
什么!??你还在为这道最大四边形面积苦恼吗?
你还在为dalao的Math法看不懂而悲伤吗?
速速食用这篇题解!Math方法解题超详细(不对处欢迎指正!)
目录
1 解题知识点具备要求
2 题目大意
3 一次函数图像上的分析 (分类讨论)
4 转换二次函数抛物线并求得最值 (重点!!!)
5 代码环节
解题知识点具备
解这道题你需要具备以下知识点
初二:一次函数的图形与性质
题目大意
有一条一次函数直线,已知且直线上有一动点在坐标系的第一象限移动,与数轴构成 矩形(本蒟蒻自定的),现求最大,如下图
一次函数图像上的分析 (分类讨论)
通过一次函数的性质我们可以知道
当时,图像的开口是朝上的此时若P在第一象限上移动则解会无限大,如图
但当时,即 题目大意 中图片所示,图像的开口朝下,一次函数图像的第一象限部分是有限制的,所以此时有最大值
因此明晰了有解和无解的情况
1-当时无解 输出-1
2-当时有解 继续往下求解
转换二次函数抛物线并求得最值
在分析完有无解后,最重要的一步来了,求得最大解
我们依旧拿图片来看
我们设点的横纵坐标上为和,因为点在一次函数上所以满足,所以点可表示为
又因为且
所以
这样此时值就变成了一个一元二次方程,求其最大值
求一元二次方程的最大值可以将它抽象为二次函数,继而转为求二次函数(抛物线)的最大值也就是顶点的轴数值,如下图所示
一个二次函数可以表示为
我们将上面求出的作观察
发现
而后代入求顶点纵坐标的公式
因为所以项消掉 最终得出
所以
这样我们就把有解情况下的公式求出来了!!!
代码环节
附带注释!!!
#include<bits/stdc++.h>
using namespace std;
long long k,b;//给定的一次函数常数项
double ans;
int main() {
int T;//T组数据
cin>>T;
for(int i=1;i<=T;i++){
cin>>k>>b;
if(k>=0){cout<<-1<<endl;}//一次函数图形开口朝上,ans无限大无解
else{
/*
S=xp*yp
因为y1=k*xp+b
所以S=xp*(k*xp+b)=kx^2+bx ->(变为二次方程形式ax^2+bx+c,此处a=k,b=b,c=0)
将二次方程转为二次函数,变为求二次函数最大值即(抛物线)顶点
抛物线顶点公式=(4ac-b^2)/4a
又因为c=0
所以最大值=(-b^2)/4a=(-b^2)/4k
*/
double S;
S=(-pow(b,2))*1.0/(4*k);//k=a,*1.0是强转
printf("%.4f\n",S);
}
}
return 0;
}
这里空空如也
有帮助,赞一个