【2019/08/24测试 T1】物理课

传送门


problem

一个质点在一个奇妙的星球上(重力加速度为 g g g)做斜抛运动,初速度为 v v v,与地面夹角为 θ θ θ(角度制)。

质点每次落地后会反弹,反弹后速度大小会乘以一个常数 d ( 0 ≤ d &lt; 1 ) d(0≤d&lt; 1) d(0d<1),方向与初速度相同。请问质点最后的落点离起点多远?

注:质点飞行过程中不计空气阻力与摩擦力,所有数值单位均为国际标准单位制。

T T T 组数据。

数据范围: 0 ≤ v ≤ 1000 0≤v≤1000 0v1000 0 &lt; g ≤ 1000 0&lt; g≤1000 0<g1000 0 ≤ d &lt; 1 0≤d&lt; 1 0d<1 0 &lt; θ &lt; 90 0&lt;θ&lt; 90 0<θ<90 T ≤ 50000 T≤50000 T50000


solution

接下来是物理讲堂~

先假设 d = 0 d=0 d=0(就是不反弹)来推一下吧。

把角度制换成弧度制,得到 θ ′ = θ × π 180 θ&#x27;=θ\times\frac{\pi}{180} θ=θ×180π。为了方便,以下的 θ θ θ 都是弧度制的。

然后把 v v v 分解,水平方向上是 v cos ⁡ θ v\cos θ vcosθ,竖直方向上是 v sin ⁡ θ v\sin θ vsinθ。那么竖直:

− g t 2 = 0 − v sin ⁡ θ -g\frac t 2=0-v \sin θ g2t=0vsinθ

解出 t = 2 v sin ⁡ θ g t=\frac{2v\sin θ}{g} t=g2vsinθ,那么水平位移就是:

x = 2 v sin ⁡ θ v cos ⁡ θ g = v 2 sin ⁡ 2 θ g x=\frac{2v \sin θ v \cos θ}{g}=\frac{v^2 \sin 2θ}{g} x=g2vsinθvcosθ=gv2sin2θ

那么如果要反弹,答案就是:

a n s = ∑ i = 0 ∞ v 2 sin ⁡ 2 θ g d 2 i = v 2 sin ⁡ 2 θ g × 1 1 − d 2 \begin{aligned} ans&amp;=\sum_{i=0}^{\infty}\frac{v^2 \sin 2θ}{g}d^{2i}\\ &amp;=\frac{v^2 \sin 2θ}{g}\times \frac 1 {1-d^2} \end{aligned} ans=i=0gv2sin2θd2i=gv2sin2θ×1d21

那么 O ( 1 ) O(1) O(1) 算就可以了。


code

#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const double pi=acos(-1);
double angle,v,d,g;
int main(){
	int T;
	scanf("%d",&T);
	double rad=pi/180.0;
	while(T--){
		scanf("%lf%lf%lf%lf",&angle,&v,&d,&g);
		printf("%.5lf\n",v*v*sin(2.0*angle*rad)/g*1.0/(1.0-d*d));
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值