练习2————1004
2016-04-20 12:04
267 查看
题目:最小仰角
题意:已知发射点坐标为(0,0)和重力加速度g=9.8,给出目标的坐标和初速度,求能够击中目标的最小仰角。
思路:(1)直接假设能够击中目标,写出公式,化成一元二次方程,把公式内的三角函数全部化成tan,判断[0,PI/2]有无解;
(2)运用三分+二分,首先三分仰角,求出轨迹在x处的纵坐标,若纵坐标最大值小于y,则直接输出-1,三分过后[0,r]上就是单调递增的, 直接二分即可
感想:要知道物理知识,
代码:
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<numeric>
#include<math.h>
#include<cstdio>
using namespace std;
const double PI = 3.1415926535;
const double eps = 1e-10;
double g=9.8;
int main()
{
int n;
double x,y,v,ans;
cin>>n;
while(n--)
{
cin>>x>>y>>v;
double mid,l,r,vx,vy,t,mVal;
l = 0;r = PI/2.0;
bool suc = false;
while(r-l>=eps)
{
mid = (l+r)/2.0;
vx = v*cos(mid),vy = v*sin(mid);t = x/vx;
mVal = vy*t-0.5*9.8*t*t;
if(mVal < y)
{
l = mid;
}
else if(mVal > y || vy/9.8 < t)
{
suc = true;
ans = mid;
r = mid;
}
else
{
suc = true;
ans = mid;
break;
}
}
if(suc) printf("%.6lf\n",ans);
else printf("-1\n");
}
return 0;
}
题意:已知发射点坐标为(0,0)和重力加速度g=9.8,给出目标的坐标和初速度,求能够击中目标的最小仰角。
思路:(1)直接假设能够击中目标,写出公式,化成一元二次方程,把公式内的三角函数全部化成tan,判断[0,PI/2]有无解;
(2)运用三分+二分,首先三分仰角,求出轨迹在x处的纵坐标,若纵坐标最大值小于y,则直接输出-1,三分过后[0,r]上就是单调递增的, 直接二分即可
感想:要知道物理知识,
代码:
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<numeric>
#include<math.h>
#include<cstdio>
using namespace std;
const double PI = 3.1415926535;
const double eps = 1e-10;
double g=9.8;
int main()
{
int n;
double x,y,v,ans;
cin>>n;
while(n--)
{
cin>>x>>y>>v;
double mid,l,r,vx,vy,t,mVal;
l = 0;r = PI/2.0;
bool suc = false;
while(r-l>=eps)
{
mid = (l+r)/2.0;
vx = v*cos(mid),vy = v*sin(mid);t = x/vx;
mVal = vy*t-0.5*9.8*t*t;
if(mVal < y)
{
l = mid;
}
else if(mVal > y || vy/9.8 < t)
{
suc = true;
ans = mid;
r = mid;
}
else
{
suc = true;
ans = mid;
break;
}
}
if(suc) printf("%.6lf\n",ans);
else printf("-1\n");
}
return 0;
}
相关文章推荐
- 队列Queue 先进先出 栈Stack 先进后出
- Android使用MediaRecorder类进行录制视频
- Android 自定义View合集
- UIBezierPath贝塞尔弧线常用方法记
- iOS 开发--最新版 cocoapods 安装教程
- Java中String的设计原理
- Django之信息聚合
- 142. Linked List Cycle II
- BroadCastResever
- (box-flex) webapp开发信息流的一种方式
- Maven安装
- VB 6.0 使用Sqlite总结知识
- 【hdu5515】【2015ACM/ICPC亚洲区沈阳站】 Game of Flying Circus 题意&题解&代码(C++)
- Android View的事件分发机制探索
- ArcGIS系统要求知多少
- 推荐!国外程序员整理的Java资源大全
- 浅谈:html5和html的区别
- iOS开发之tableview的优化
- 会食恐怖症
- apache commons fileupload FAQ