#include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #include<cmath> #define N 1005 using namespace std; int T,n; double p,q,f[N],g[N]; int main() { scanf("%d",&T); while (T--) { scanf("%d",&n); n=min(n,1000); scanf("%lf%lf",&p,&q); f[0]=0; g[0]=1; for (int i=1; i<=n; i++) { if (f[i-1]>g[i-1]) p=1-p,q=1-q; f[i]=(1.0*p*g[i-1]+1.0*(1-p)*q*f[i-1])/(1.0-1.0*(1-p)*(1-q)); g[i]=(1.0*q*f[i-1]+1.0*(1-q)*p*g[i-1])/(1.0-1.0*(1-p)*(1-q)); if(f[i-1]>g[i-1])p=1-p,q=1-q; } printf("%0.6lf\n",f[n]); } return 0; }
相关文章: