zzulioj-1965-Big Prize【思维】【数学组合】

来源:互联网 发布:js怎样仿写shift 编辑:程序博客网 时间:2024/06/08 07:59

题目链接:点击打开链接

1965: Big Prize

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 15  Solved: 7

SubmitStatusWeb 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;}

0 0