UVa10491(紫书326)奶牛与轿车

时间限制:1秒  内存限制:64M

【问题描述】

  有这么一个电视节目:你的面前有3个门,其中两扇门里是奶牛,另一扇门里则藏着奖品——一辆豪华小轿车。在你选择一扇门之后,门并不会立即打开。这时,主持人会给你个提示,具体方法是打开其中一扇有奶牛的门(不会打开你已经选择的那个门,即使里面是牛)。接下来你有两种可能的决策:保持先前的选择,或者换成另一扇未开的门。当然,你最终选择打开的那扇门后面的东西就归你了。

  在这个例子中,你能得到轿车的概率是2/3,方法是总是改变自己的选择。2/3这个数是这样得到的:如果你开始选择的是藏有牛的两个门之一,你肯定能换到藏有车的那个门,因为主持人已经让你看到了另一个牛;而如果如果你开始选择的就是有车的门,就会换成剩下的牛并且输掉奖品。由于你的最初选择是任意的,因此选错的概率是2/3。也正是这个2/3的情况让你能换到那辆车(另外1/3的情况你会从车换到牛)。

  现在把问题推广一下,假设有a头牛,b辆车(门的总数为a+b),你最终选择前主持人会替你打开C扇有牛的们,输出“总是换门”的策略下,赢得车的概率。

【输入格式】

  包含若干组数据,每组数据包含a,b,c三个整数,他们的意义如题目描述。

【输出格式】

  每组数据的答案输出一行一个实数,保留5位小数。

【输入样例】

2 1 1
5 3 2
2000 2700 900

【输出样例】

0.66667
0.52500
0.71056

【数据范围】

1<=a<=10000,1<=b<=10000,0<=c

#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;

int main()
{
    double a,b,c;
    while(scanf("%lf%lf%lf",&a,&b,&c)==3)
    printf("%.5lf\n",(b*(b-1)+a*b)/((a+b)*(a+b-c-1)));
    return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值