标签:
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=5194
题目大意:
袋子里有N个黑球、M个白球。用1表示取出来的是黑球,0表示取出来的是白球。不放回
的从袋子里取出这N+M个球。求相邻取出的两个球第一个球白球,第二个球是黑球的期望
次数是多少,即出现"01"的期望次数是多少。
思路:
考虑期望可加。第i(1<=i<=N+M)个位置上出现白球的概率为M/(M+N),则i+1个位置上
出现黑球的概率为N/(M+N-1)。因为白球只能在1~M+N-1个位置上出现(后边还有黑球)。
所以出现"01"的次数为(M+n-1)次。则总的期望 = M/(M+N) * N/(M+N-1) * (M+N-1),
即M*N/(M+N)。最后求M*N和M+N的最大公约数,将分子分母约分后输出就可以了。
AC代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int GCD(int a,int b)
{
if(a < b)
int temp = a, a = b, b = temp;
if(b == 0)
return a;
return GCD(b,a%b);
}
int main()
{
int a,b;
while(cin >> a >> b)
{
int fz = a*b;
int fm = a+b;
printf("%d/%d\n",fz/GCD(fz,fm),fm/GCD(fz,fm));
}
return 0;
}
标签:
原文地址:http://blog.csdn.net/lianai911/article/details/45250875