Uva 10387 Billiard

本文介绍了一道关于台球桌反弹的数学物理问题。通过分析球在台球桌上反弹的规律,利用对称性和几何关系,推导出了球的速度和初始角度的计算公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1328

题目:有一张台球桌水平边长a,竖直边长b,一个台球在其中心,从与水平边夹角为A的以速度v出发,经过时间s,与水平边碰撞反弹m次,与竖直边碰撞反弹n次,最后又经过出发点。已知a,b,s,n,m,要求A,v。假设没有能量损失,即反弹类似光的反射,对称。

题解:将路径在竖直边的反弹对称展开到水平方向上,则可得路劲总长度为b/sinA*n。同理可得总路径也等于,a/cosA*m。两式相等,得到tanA=(b*n)/(a*m),解得A,总路径除以时间s即为速度(没有能量损失,即为匀速运动)。其实a*m为水平方向总位移,b*n为竖直方向总位移,也可用勾股定理求总路径长度。

代码:
#include<cmath>
#include<iostream>
const double pi =acos(-1.0);
using namespace std;
int main()
{
    double a,b,s,m,n;
    while(cin>>a>>b>>s>>m>>n)
    {
        if(a==0&&b==0&&s==0&&m==0&&n==0) break;
        double deg=atan(b*n/a/m);
       // double v=sqrt(a*m*a*m+b*n*b*n)/s;
        //double v=a*m/cos(deg)/s;
        double v=b*n/sin(deg)/s;
        printf("%.2lf %.2lf\n",deg*(180.0/pi),v);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值