您的位置:首页 > 其它

CCCC天梯赛 L3-013. 非常弹的球

2017-03-28 16:13 302 查看
看到大家好像都写了这道题的题解,那我也来写一份。。。

首先,有这么一个定理:

在水平地面上,斜抛一个球,不考虑空气阻力的情况下,45°投掷,能投掷得最远。若不是水平地面,则视地面坡度,其最优角度也不一样。

定理证明,可以设个落地点距离函数,角度为变量,初速度等为常量,求个导数就能得到最优角度了。这里就不证明了。(没错,就是因为我懒得写)

然后,可以得到以下式子:

速度与能量的关系:v = sqrt(2*E/m)

45°抛射角时,水平速度:v_v = sqrt(0.5)*v = sqrt(E/m)

45°抛射角时,竖直速度:v_h = sqrt(0.5)*v = sqrt(E/m)

45°抛射角时,球在空中运动的时间: t = △v_h/g = 2*v_h/g = 2*sqrt(E/m)/g

落地点的距离:s = v_v*t = 2*E/(m*g)

然后考虑能量损失,每次损失p%,也就是说

s[0]=2*E/(m*g)

s[i]=s[i-1]*(1-0.01*p)

求s[k]的和,即比值小于1的等比数列求和,直接套用等比数列求和公式。

sum = (1-(1-0.01*p)^∞)/(1-(1-0.01*p))*s[0] = s[0]/(0.01*p) = 2*E/(0.01*p*m*g)

然后就弄好了。

#include <bits/stdc++.h>
using namespace std;

int main()
{
double w,p;
while(cin>>w>>p)
{
printf("%.3f\n",2*1000/(0.0001*p*w*9.8));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  物理 CCCC天梯赛