博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 10491 - Cows and Cars(全概率)
阅读量:4490 次
发布时间:2019-06-08

本文共 1311 字,大约阅读时间需要 4 分钟。

链接:

 

题意:

有这么一个电视节目:你的面前有3个门,其中两扇门里是奶牛,另外一扇门里则藏着奖品——一辆豪华小轿车。

在你选择一扇门之后,门并不会立即打开。这时,主持人会给你个提示,
具体方法是打开其中一扇有奶牛的门(不会打开你已经选择的那个门,即使里面是牛)。
接下来你有两种可能的决策:保持先前的选择,或者换成另外一扇未开的门。
当然,你最终选择打开的那扇门后面的东西就归你了。
在这个例子里面,你能得到轿车的概率是2/3(难以置信吧!),方法是改变自己的选择。
2/3这个数是这样得到的:如果选择了两个牛之一,你肯定能换到车前面的门,因为主持人已经让你看了另外一个牛;
而如果你开始选择的就是车,就会换成剩下的牛并且输掉奖品。由于你的最初选择是任意的,因此选错的概率是2/3。
也正是这2/3的情况让你能换到那辆车(另外1/3的情况你会从车切换到牛)。
现在把问题推广一下,假设有a头牛,b辆车(门的总数为a+b),
在最终选择前主持人会替你打开c个有牛的门(1≤a≤10000,1≤b≤10000,0≤c<a),
输出“换门”的策略下,赢得车的概率。

 

分析:

使用全概率公式。打开c个牛门后,还剩a-c头牛,未开的门总数是a+b-c,

其中有a+b-c-1个门可以换(称为“可选门”),换到车门的概率就是“可选门中车门的个数”除以“可选门”的总数。
情况1:一开始选了牛(概率为a / (a+b)),则可选门中车门有b个。这种情况的概率为a/(a+b) * b/(a+b-c-1)。
情况2:一开始选了车(概率为b / (a+b)),则可选门中车门有b-1个,概率为b/(a+b) * (b-1)/(a+b-c-1)。
加起来得(ab+b(b-1)) / ((a+b)(a+b-c-1))。

 

代码:

1 import java.io.*; 2 import java.util.*; 3  4 public class Main { 5     public static void main(String args[]) { 6         Scanner cin = new Scanner(new BufferedInputStream(System.in)); 7          8         while(cin.hasNext()) { 9             int a = cin.nextInt();10             int b = cin.nextInt();11             int c = cin.nextInt();12             double ans = 1.0 * (a*b + b*(b-1)) / (a+b) / (a+b-c-1);13             System.out.printf("%.5f\n", ans);14         }15         cin.close();16     }17 }

 

转载于:https://www.cnblogs.com/hkxy125/p/8922717.html

你可能感兴趣的文章
MySQL 一致性读 深入研究
查看>>
求解组合序列
查看>>
2018年暑假第七周
查看>>
【OpenCV入门指南】第一篇 安装OpenCV
查看>>
每日一小练——高速Fibonacci数算法
查看>>
Windows下Subversion配置管理员指南
查看>>
垂直居中及容器内图片垂直居中的CSS解决方法
查看>>
26 THINGS I LEARNED IN THE DEEP LEARNING SUMMER SCHOOL
查看>>
.Net C# 与 非托管C++互操作性
查看>>
Ubuntu16.04 安装 caffe python 接口
查看>>
【转】由浅入深表达式树(完结篇)重磅打造 Linq To 博客园
查看>>
Java反射-reflect
查看>>
IDEA常用快捷键
查看>>
oracle定时任务
查看>>
[LeetCode] Symmetric Tree
查看>>
《钟馗伏魔:雪妖魔灵》另类解读
查看>>
Centos7.3_64位安装Apache2.4_mysql5.7_php5.4(阿里云LAMP php环境搭建图文教程)
查看>>
关于android@home的一点想法
查看>>
智能查寝第一次迭代心得
查看>>
如何选购PLC产品
查看>>