链接:https://ac.nowcoder.com/acm/contest/272/C
来源:牛客网
水题
题目描述
有一个盒子,里面有一个黑球和一个白球。每次随机取出盒子中的一个球,并将两个与取出球同色的球放进盒子(就是随机一种颜色将其个数+1)。
求n次取球后,盒子中白色球数目的期望。
输入描述:
输入一个整数n,表示取球次数。
输出描述:
输出一个实数,表示n次取球后白球数目的期望。答案保留7位小数。
示例1
输入
复制
2
输出
复制
2.0000000
说明
若第一次取出白球: 放入两个白球,则现在有一个黑球两个白球,概率为1/2。 若第二次取出白球,则现在有一个黑球三个白球,概率为1/2*2/3=1/3,期望个数为1/3*3=1; 若第二次取出黑球,则现在有两个黑球两个白球,概率为1/2*1/3=1/6,期望个数为1/6*2=1/3。 若第一次取出黑球: 放入两个黑球,则现在有两个黑球一个白球,概率为1/2。 若第二次取出黑球,则现在有三个黑球一个白球,概率为1/2*2/3=1/3,期望个数为1/3*1=1/3; 若第二次取出白球,则现在有两个黑球两个白球,概率为1/2*1/3=1/6,期望个数为1/6*2=1/3。 所以白球期望数目为2个。
备注:
0≤n≤106。
规律:对于第n次取完后白色的个数,有n+1中可能,且每一种可能性的概率都相等,为1/(n+1)
AC代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
printf("%.7f\n",1.0*(n+2)/2);
return 0;
}