UVa 10491 - Cows and Cars(全概率)
链接:
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1432
题意:
有这么一个电视节目:你的面前有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))。
代码:
import java.io.*;
import java.util.*; public class Main {
public static void main(String args[]) {
Scanner cin = new Scanner(new BufferedInputStream(System.in)); while(cin.hasNext()) {
int a = cin.nextInt();
int b = cin.nextInt();
int c = cin.nextInt();
double ans = 1.0 * (a*b + b*(b-1)) / (a+b) / (a+b-c-1);
System.out.printf("%.5f\n", ans);
}
cin.close();
}
}
UVa 10491 - Cows and Cars(全概率)的更多相关文章
- UVa 10491 Cows and Cars (概率&广义三门问题 )
10491 - Cows and Cars Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onli ...
- UVa 10491 - Cows and Cars
題目:有m+n個們,每個門後面有牛或者車:有n仅仅牛,m輛車,你選擇当中1個: 然後打開当中的k你沒有選中的門後是牛的,問你改變選時得到車的概率. 說明:數學題,概率.全概率公式就可以: 說明:第10 ...
- UVA 10491 Cows and Cars (全概率公式)
#include<bits/stdc++.h> #include<stdio.h> #include<iostream> #include<cmath> ...
- UVA10491 - Cows and Cars(概率)
UVA10491 - Cows and Cars(概率) 题目链接 题目大意:给你n个门后面藏着牛.m个门后面藏着车,然后再给你k个提示.在你作出选择后告诉你有多少个门后面是有牛的,如今问你作出决定后 ...
- 10491 - Cows and Cars
描述:要么全选择牛,要么选择一辆车和p-1头牛,那么剩下n+m-p道门可以选择,求选择p道门以后要选择到车的概率 #include <cstdio> int main() { //freo ...
- Cows and Cars UVA - 10491 (古典概率)
按照题目的去推就好了 两种情况 1.第一次选择奶牛的门 概率是 a/(a+b) 打开c扇门后 除去选择的门 还剩 a-1-c+b扇门 则选到车的概率为b/(a-1-c+b) 2.第一次选择车的门 ...
- AC自动机+全概率+记忆化DP UVA 11468 Substring
题目传送门 题意:训练指南P217 分析:没有模板串也就是在自动机上走L步,不走到val[u] == v的节点的概率 PS:边读边insert WA了,有毒啊! #include <bits/s ...
- Tribles UVA - 11021(全概率推论)
题意: 有k只麻球,每只只活一天,临死之前可能会出生一些新的麻球, 具体出生i个麻球的概率为P,给定m,求m天后麻球全部死亡的概率. 解析: 从小到大,先考虑一只麻球的情况 设一只麻球m天后全部死亡 ...
- 紫书 例题 10-10 UVa 10491(概率计算)
公式很好推,表示被高中生物遗传概率计算虐过的人 这个公式简直不需要动脑 #include<cstdio> using namespace std; int main() { double ...
随机推荐
- Silverlight & Blend动画设计系列十三:三角函数(Trigonometry)动画之飘落的雪花(Falling Snow)
平时我们所看到的雪花(Falling Snow)飘飘的效果实际上也是一个动画,是由许多的动画对象共同完成的一个界面效果.对于不同大小的雪片可以通过缩放变换(ScaleTransform)功能特性确定, ...
- form表单在发送到服务器时候编码方式
enctype(编码方式):规定了form表单在发送到服务器时候编码方式.有如下的三个值可选: 1.application/x-www-form-urlencoded.默认的编码方式.但是在用文本的传 ...
- Mysql根据经纬度筛选数据
创建位置表,并且插入测试数据 /* Navicat MySQL Data Transfer Source Server : localhost Source S ...
- Spring_Spring与IoC_基于XML的DI
一.注入分类 bean实例在调用无参构造器创建空值对象后,就要对Bean对象的属性进行初始化.初始化时由容器自动完成的,称为注入.根据注入方式的不同,常用的有2类:设值注入.构造注入.(还有一种,实现 ...
- 四层协议和Socket编程
<四层协议图> <Soclet编程模型图>
- ul li各属性设置
1. ul li删除前面的黑点:style=“list-style:none;” <ul style=“list-style:none;”> <li></li> & ...
- 使用mpvue搭建一个初始小程序
1. 初始化一个 mpvue 项目 现代前端开发框架和环境都是需要 Node.js 的,如果没有的话,请先下载 nodejs 并安装. 然后打开命令行工具: # 1. 先检查下 Node.js 是否安 ...
- BBS需求分析和orm设计
一.BBS博客需求分析 首页(现实文章) 文章详情 点赞 文章评论(子评论,评论的展示) 登录功能(图片验证码) 注册功能(基于form验证) 个人站点(不同人不同样式,文章过滤) 后台管理(文章展示 ...
- parted命令
fdisk命令是针对MBR分区进行操作,MBR分区因为自身设计原因,不能处理大于2TB的硬盘,并且只能有4个分区. 针对大于2TB的硬盘,需要采用GPT分区,使用parted命令进行操作 parted ...
- MySQL数据库(1)----入门级操作
1.在服务器主机上以 root 用户登陆,创建位于其他客户端的新用户: mysql> CREATE USER 'newuser'@'192.168.1.109' IDENTIFIED BY 'p ...