条件概率全概率公式-Tribles
条件概率,全概率公式,贝叶斯公式
条件概率:在另外一个事件 B 已经发生的条件下,事件 A 发生的概率叫做在 A 对于 B 的条件概率,记作 \(p(A|B)\)。显然\(p(AB)=p(A|B)p(B)\)。于是有:\(p(A|B)=\frac{p(AB)}{p(B)}\)。
独立事件:若事件 B 是否发生对事件 A 的概率没有影响,即\(p(A|B)=p(A)\),则称事件 A, B 相互独立 (为独立事件)。将前面那个式子代入,可以发现若两个事件A和B独立,则\(p(AB)=p(A)p(B)\)。换句话说,就是当有A的时候,B事件发生的概率等于无A的时候发生的概率(\(\frac{p(AB)}{p(A)}=\frac{p(B)}{p(\Omega)}\))。用维恩图来理解:

第一幅图表示A,B独立,即\(p(AB)=p(A)p(B)\)。而如果把B往内移动一点,显然在有A事件发生的情况下,B事件发生的几率更大了(\(p(AB)/p(A)>p(B)/p(\Omega)\))。因此A,B便不是独立的了。把B往外移动一点也是如此。
注意独立事件和互斥事件的概念不同。互斥表示\(p(AB)=0\),独立表示\(p(AB)=p(A)p(B)\)。也就是说,互斥表示两个事件不能同时出现,独立表示两个事件没有关系。两个事件不能同时出现,表示两个事件是有关系的,也就是说互斥一定不独立。
完备事件组:若事件\(A_1,A_2,...,A_n\)满足\((i)A_i\cap A_j=\emptyset\quad(ii)a_1\cap ...\cap a_n=\Omega\),那么它们就是完备事件组。
全概率公式可以轻松推出:\(p(A)=\sum_{i=1}^{n}p(AB_i)=\sum_{i=1}^{n}p(A|B_i)p(B_i)\)(相当于一张大饼)。也有一些特殊形式:\(p(A)=p(AB)+p(A\bar{B})=p(A|B)p(B)+p(A|\bar{B})p(\bar{B})\)。
有 n 个怪物,每只怪物只能活一天,但是每个怪物在那天有 pi 的概率繁殖 i 个怪物 (0 ≤ i < l,且\(\sum_{i=0}^{l-1}p_i=1\)),求 (n 个怪物时为第 0 天) 第 m 天所有怪物都挂的概率。(m, l ≤ 1000)。
我们来看这道题:第m天所有怪物都挂的概率是第m天一个怪物系(也就是一个怪物和它的儿子)挂的概率的n次。以下讨论在一个怪物系中的情况:
记第k天所有怪物都挂的概率为\(f_k\),可以知道\(f_1\)就是第0天啥都不繁殖的概率,即\(f_1=p_0\)
考虑k>1的情况,令事件A为所有怪物在第k天全挂,事件\(B_i\)为第0天怪物繁殖i个,可以看出\(B_0, B_1, ..., B_{l-1}\)是\(\Omega\)的一个完备事件组。
可以看出,\(p(B_i)=p_i\),事件\(A|B_i\)表示第一天有i个怪物,结果到第k天全挂了,相当于一直第0天有i个怪物,结果到第k-1天全挂了。这是一个子问题,相当于\(f_{k-1}^i\)!所以根据全概率公式可得:$$f_k=p(A)=\sum_{i=0}{l-1}p(A|B_i)p(B_i)=\sum_{i=0}{l-1}f_{k-1}^ip_i$$
这个做法的精髓在于通过全概率公式发现重复子问题。
1 #include <cstdio>
2 using namespace std;
3
4 const int maxday=1005, maxbirth=1005;
5 int t, n, k, m;
6 double f[maxday], p[maxbirth];
7
8 int main(){
9 scanf("%d", &t);
10 for (int tt=0; tt<t; ++tt){
11 scanf("%d%d%d", &n, &k, &m);
12 for (int i=0; i<n; ++i)
13 scanf("%lf", &p[i]);
14 f[1]=p[0];
15 for (int i=2; i<=m; ++i){
16 double now=1; f[i]=0;
17 for (int j=0; j<n; ++j, now*=f[i-1])
18 f[i]+=now*p[j];
19 }
20 double ans=1;
21 for (int i=0; i<k; ++i) ans*=f[m];
22 printf("Case #%d: %.7lf\n", tt+1, ans);
23 }
24 return 0;
25 }
全概率公式有一个好~基~友,叫做贝叶斯公式。全概率公式揭示了一般概率和条件概率之间的关系,而 Bayes 公式揭示了几个条件概率之间的关系:
\(p(B_k|A)=\frac{p(A*B_k)}{p(A)}=\frac{p(A*B_k)}{\sum_{i-1}^np(A*B_i)}=\frac{p(A|B_k)p(B_k)}{\sum_{i=1}^np(A|B_i)p(B_i)}\)
(好累TwT……)
注意最后面那个分数还可以约来着。
条件概率全概率公式-Tribles的更多相关文章
- 【概率论】条件概率 & 全概率公式 & 朴素贝叶斯公式
0. 说明 条件概率 & 全概率公式 & 朴素贝叶斯公式 学习笔记 参考 scikit-learn机器学习(五)--条件概率,全概率和贝叶斯定理及python实现 1. 条件概率 [定 ...
- 《A First Course in Probability》-chaper3-条件概率和独立性-贝叶斯公式、全概率公式
设有事件A.B. 下面结合具体的题目进一步理解这种方法: Q1:保险公司认为人可以分为两类,一类易出事故,另一类则不易出事故.统计表明,一个易出事故者在一年内发生事故的概率是0.4,而对不易出事故者来 ...
- uva11021 - Tribles(概率)
11021 - Tribles GRAVITATION, n.“The tendency of all bodies to approach one another with a strengthpr ...
- UVa 11181 - Probability|Given(条件概率)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 【概率论】2-1:条件概率(Conditional Probability)
title: [概率论]2-1:条件概率(Conditional Probability) categories: Mathematic Probability keywords: Condition ...
- UVA11021 Tribles[离散概率 DP]
UVA - 11021 Tribles GRAVITATION, n. “The tendency of all bodies to approach one another with a stren ...
- UVA11181Probability|Given(条件概率)
题目链接 紫书P327 题意:有n个人准备去超市逛,其中第i个人买东西的概率是 Pi .逛完以后你得知有 r 个人买了东西.根据这一信息,计算每个人实际买东西的概率.输入 n ( 1 <= n ...
- 布朗语料库中条件概率分布函数ConditionalFreqDist使用
布朗语料库中使用条件概率分布函数ConditionalFreqDist,可以查看每个单词在各新闻语料中出现的次数.这在微博情感分析中非常有用,比如判断feature vector中代表positive ...
- UVa 11181 条件概率
题意:n个人选r个人,每个人被选中的概率为pi,问最后每个人被选中的概率是多少. sol:就是个简单的概率题,范围还特别小,深搜秒出...然而公式什么的很多还是需要注意的... 条件概率的公式 ...
随机推荐
- C# IL中间代码注入实现切面编程
背景及现状:之前分享的那篇“面向切面编程–渲染监控日志记录方案”中提供了利用RealProxy作为代理类来生成代理的面向切面的编程方法,那个方法可以实现面向切面编程进行日志记录,现在渲染主程序也是采用 ...
- PDM生成数据库-0设置表名和字段名中不带双引号
如果PDM直接导出脚本的话,所有的表和字段都会被加上双引号,非常不方便,去除双引号的办法: Database->Edit Current DBMS在弹出窗体中第一项General中找到 Scri ...
- _tprintf(), printf(),wprintf() 与控制字符 %s 和 %S(Unicoe与GB2312))
_tprintf() 是 printf() 和 wprintf() 的通用类型:如果定义了 _unicode,那么 _tprintf() 就会转换为 wprintf(),否则为 printf() . ...
- Centos 7.2 安装稳定版 nginx
1. 创建适用于RHEL/CentOS系统的安装源文件,位置为: /etc/yum.repos.d/nginx.repo , 并写入以下内容: [nginx] name=nginx repo base ...
- PHP中交换两个变量的值
首先,采用php的list数据结构.上代码,然后再解析 function swap(&$a, &$b) { list ( $a, $b ) = array ($b, $a ); } l ...
- 部署和调优 3.3 dns安装配置-3
只有一台DNS服务器是不保险的,现在给他配置个从服务器. 在另外一台虚拟机上安装配置DNS服务器.先查看虚拟机ip为:192.168.1.111 ifconfig 给从安装bind和dig命令 yum ...
- 8-EasyNetQ之Send & Receive
鉴于Publish/Subsrcibe和Request/Response模式是位置透明的,在这个方面,你不需要去指定消息的消费者具体所处的位置,Send/Receive模式是特别针对通过命名队列来设计 ...
- oracle系统函数(日期函数)
oracle系统函数(日期函数) 调用日期函数时,首先要明确两个概念,时间戳和日期是不同的,日期中包括年月日但不包括小时分钟秒,时间戳包括年月日小时分钟秒.在oracle中,一般情况下,函数中包含da ...
- 昨天的笔试题, StringBuffer
代码: public static void switchStr(StringBuffer x, StringBuffer y) { x.append(y); System.out.println(& ...
- JAVA基础知识总结13(同步)
好处:解决了线程安全问题. 弊端:相对降低性能,因为判断锁需要消耗资源,还容易产生了死锁. 定义同步是有前提的: 1,必须要有两个或者两个以上的线程,才需要同步. 2,多个线程必须保证使用的是同一个锁 ...