题目大意:给出a,b和c,表示有a + b 个门, a个后面是牛, b个后面是车, 然后你从中选一个门,之后有一个知情人帮你打开c个后面是牛的门(因为1≤c< a,所以就算第一次选中牛,知情人还是可以打开c个门),然后你在没有打开的门中选一个,问说第二次选得门后面是车的概率。
解题思路:问题可以分成两种情况:
1)第一次选中牛的时候,a/(a + b), 然后打开c个后面是牛的门,总关门数为(a + b - c - 1),然后还有b个门后面是车,所以p1 = a * b / (a + b) / (a + b - c - 1).
2)第一次选中车的时候, b/ (a + b), 然后打开c个后面是牛的门,总门数为(a + b - c - 1), 然后还有b - 1个门后面是车,所以p2 = b * (b - 1)/ (a + b) / (a + b - c - 1).
#include <cstdio> int main() { int a, b, c; while (scanf("%d%d%d", &a, &b, &c) != EOF) printf("%.5lf\n", (1.0 * a * b + b * (b - 1)) / (a + b) / (a + b - c - 1)); return 0; }