题目链接:点击打开链接
1965: Big Prize
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 15 Solved: 7
Submit Status Web Board
Description
一天,cds和他的两个舍友ykc、zy准备去采购一些生活用品,正巧当天商店有活动,凡是消费超过100元就可以现场摸奖,
规则如下:在一个密封的盒子里有红球x个,绿球y个,黄球z个,顾客每次不放回的抽一个球(每个球都是等概率被抽到),
当某种颜色的球被抽完时,游戏结束,如果是红球最先被抽完,那么就可以获得神秘大奖,对于这种需要rp的事,我们当然决定
让ykc去摸,那么ykc获奖的概率是多少呢?
Input
多实例测试,每组输入三个正整数x,y,z(<=100)
Output
输入中奖概率P,保留两位有效数字
Sample Input
1 1 12 1 3
Sample Output
Case #1: 0.33Case #2: 0.27
思路:
这个问题可转化如下:
将盒子里的n个球排成一列,那么最后一个球一定是绿球或者黄球,其中是绿球的概率为 b/(a+b+c),这时如果把所有的绿球全部拿出,那么很显然最后一个球一定是黄球,这样总概率就为 b/(a+b+c)*c/(a+c),最后一个球是黄球,则同理 c/(a+b+c)*b/(a+b),最后两个加起来就是红球最先被抽完的概率。
#include<cstdio>
#include<cmath>
using namespace std;
double a,b,c;
int main()
{
int text=0;
while(~scanf("%lf%lf%lf",&a,&b,&c))
{
printf("Case #%d: %.2lf\n",++text,b/(a+b+c)*c/(a+c)+c/(a+b+c)*b/(a+b));
}
return 0;
}