版权声明:我这么弱的蒟蒻,虽然博文不是很好,但也请标明转发地址喵! https://blog.csdn.net/ACerAndAKer/article/details/82795924
数学
第一个人能先射中的概率有
第一次就射中的概率 a
前两次两个人都没射中,第三次射中
前四次两个人都没射中,四五次射中
然后以此类推,最终结果就是这些相加,然后这样可以一直加下去,所以我们定义一个下界,我用的1e-9,就是说两次结果相差不超过1e-9,就可以跳出了
代码
//By AcerMo
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
double a,b,c,d;
signed main()
{
cin>>a>>b>>c>>d;
a/=b;c/=d;
double ans=a,que=0,tmp=1;
while (abs(ans-que)>1e-9)
{
que=ans;
tmp*=(1-a)*(1-c);
ans+=tmp*a;
}
printf("%.12lf",ans);
return 0;
}