题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5194
题目大意:给我们n个黑球(1)和m个白球(0),随机排列成一排,问我们得到的01排列方式的期望个数。
首先,每一个球出现在每一个位置的几率都是一样的,那么在第i位上出现白球的概率就是m/(n+m),而此时第i+1位出现黑球的概率就是n/(m+n-1),同时只有在1~m+n-1位上才会存在01的情况,所以期望就是(m/(n+m)) * (n/(m+n-1)) * (m+n-1) = m*n / (m+n)。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int n,m,num;
int gcd(int a,int b) {return b?gcd(b,a%b):a;}
int main()
{while(scanf("%d%d", &n,&m) !=EOF){int a = n*m;int b = n+m;int c = gcd(a,b);a /= c,b /= c;printf("%d/%d\n", a,b);}
}