HDU

来源:互联网 发布:淘宝大衣比较好的店 编辑:程序博客网 时间:2024/06/10 23:04

题意:
袋子里有N个黑球、M个白球。用1表示取出来的是黑球,0表示取出来的是白球。不放回
的从袋子里取出这N+M个球。求相邻取出的两个球第一个球白球,第二个球是黑球的期望
次数是多少,即出现”01”的期望次数是多少。
思路:
考虑期望可加性,求出每个位置可能出现01的期望,然后相加即可.
显然每个位置最多出现一次,考虑到拿球不放回和方茴的概率一样,这里第i个位置为白球的概率为 MN+M ,第i个位置为白球并且第i+1个位置为黑球的概率为NN+M1,且这种01最多只能出现M+N-1个,所以最后的期望为 MN+MNN+M1(M1+N) 化简得 MNM+N

#include<bits/stdc++.h>using namespace std;int n,m;int main(){    while(~scanf("%d %d",&n,&m))    {        int fenzi = n * m,            fenmu = m + n,            lcm = __gcd(fenzi,fenmu);        fenzi /= lcm;        fenmu /= lcm;        printf("%d/%d\n",fenzi,fenmu);    }    return 0;}
原创粉丝点击