https://vjudge.net/problem/UVA-10491
有a个门后是牛,b个门后是车,一开始随机选一个门,然后主持人会打开c(c<a)个为牛的门,之后可以选择换门(这里要求总是换门),问最后选择的门后是车的概率。分情况讨论,如果第一次选的是牛,a/(a+b), 那么换到车的概率: (a/(a+b))*(b/(a+b-c-1)) //因为必须换门所以多减去1。如果第一次选的是车,那么
概率是(b/(a+b))*((b-1)/(a+b-c-1)),加一起就是答案。
1 #include<iostream> 2 #include<cstring> 3 #include<queue> 4 #include<cstdio> 5 #include<stack> 6 #include<set> 7 #include<map> 8 #include<cmath> 9 #include<ctime> 10 #include<time.h> 11 #include<algorithm> 12 using namespace std; 13 #define mp make_pair 14 #define pb push_back 15 #define debug puts("debug") 16 #define LL long long 17 #define pii pair<int,int> 18 #define eps 1e-12 19 char s[111]; 20 int main() 21 { 22 LL n,m,i,j,k,t; 23 double a,b,c; 24 while(cin>>a>>b>>c){ 25 double s=(a*b+b*b-b)/((a+b)*(a-c+b-1)); 26 printf("%.5f ",s); 27 } 28 return 0; 29 }