简说期望类问题的解法

报童问题的简单解法 我们早先已经在《报童问题》一文中介绍了这个经典的商品采购模型。文中的推导略有些繁复。为了便于理解,本文将给出一个相对简单的解法。 问题 我们还是沿用前文的记号。问题定义如下: 每天早上,报童以批发价 ccc 元/份采购当天的报纸,然后以零售价 ppp 元/份售卖。如果当天报纸没有卖完,则以 sss 元/份的价格卖给废品回收站。不失一般性,假设 p>c>sp>c>sp>... 阅读详情

近年的acm竞赛中,数学期望问题常有涉及,在以前也常让本人感到很头疼,近来突然开窍,掌握了基本的分析方法,希望对大家有帮助。写得浅薄,可能数学上不够严谨,只供理解。

首先,来看下期望有啥基本的公式。

对离散型随机变量x,其概率为p,有

E(x)=∑ipixi

对随机变量A、B有

E(αA±βB)=αE(A)±βE(B)

第二条式子是今天的主角,他表明了期望有线性的性质,简单理解就是期望之间可根据关系,简单运算(不严谨的理解)。这就为我们解决一个期望问题,不断转化为解决另外的期望问题,最终转化到一个已知的期望上。

例1

举一个求期望最简单的例子,见下图。

这里写图片描述

假设有个人在 1号节点处,每一分钟他会缘着边随机走到一个节点或者在原地停留,问他走到4号节点需要平均几分钟?

这是个简单的期望问题,我们用 Ei(i=1,2,3,4) 表示从i号节点走到4号节点的数学期望值。根据题意对1号节点有
E1=(1/3)∗E1+(1/3)∗E2+(1/3)∗E3+1 ①

表示他下一分钟可以走到2或者3或在原地1,每个可能概率是1/3 ,注意是下一分钟,故要加上1.

同理我们对节点2,3同样可以列出

E2=(1/3)∗E1+(1/3)∗E2+(1/3)∗E4+1 ②
E3=(1/3)∗E1+(1/3)∗E3+(1/3)∗E4+1 ③

那E4等于多少呢? 很明显E4=0 ④,因为他就是要到点4

这样上面1234式其实就是组成了一组方程组,解方程组就可得出E1,用高斯消元,复杂度是O(n3)

从上述例子,我们可总结出如何解决期望类问题,根据题意,表示出各个状态的期望(上例的Ei(i=1,2,3,4)),根据概率公式,列出期望之间的方程,解方程即可。

例2

下面看用上述思路如何解决一道题(poj2096)

题意:

一个人受雇于某公司要找出某个软件的bug和子组件,这个软件一共有n个bug和s个子组件,每次他都能同时随机发现1个bug和1个子组件,问他找到所有的bug和子组件的期望次数。

我们用E(i,j)表示他找到了i个bug和j个子组件,离找到n个bug和s个子组件还需要的期望次数,这样要求的就是E(0,0),而E(n,s)=0,对任意的E(i,j)。
1次查找4种情况:
1. 没发现任何新的bug和子组件
2. 发现一个新的bug
3. 发现一个新的子组件
4. 同时发现一个新的bug和子组件
用概率公式可得:

E(i,j)=1+(i∗j/n/s)∗E(i,j)+(i∗(s−j)/n/s)E(i,j+1)+((n−i)∗j/n/s)∗E(i+1,j)+(n−i)∗(s−j)/n/s∗E(i+1,j+1)

移项可得:

(1−(i∗j)/(n∗s))E(i,j)=1+(i∗(s−j)/n/s)E(i,j+1)+((n−i)∗j/n/s)∗E(i+1,j)+(n−i)∗(s−j)/n/s∗E(i+1,j+1)

这样根据边界就可解出所有的E(i,j),注意因为当我们找到n个bug和s个子组件就结束,对i>n或j>s均无解的情况,并非期望是0 (数学上常见问题,0和不存在的区别)

那这题是否也是要用高斯消元呢? 用高斯消元得话复杂度是O(n3),达到1018 根本是不可解的!

但其实,注意观察方程,当我们要解E(i,j)的话就需要E(i+1,j),E(I,j+1),E(i+1,j+1),一开始已知E(n,s),那其实只要我们从高往低一个个解出i,j就可以了! 即可根据递推式解出所有的E(i,j) 复杂度是O(n2) ,完美解决。

my code

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 2005;
double dp[N][N];

int main() {
    int n, s;
    while(~scanf("%d%d", &n, &s)) {
        memset(dp, 0, sizeof(dp));
        for(int i = n; i >= 0; i--) {
            for(int j = s; j >= 0; j--) {
                if(i == n && j == s) continue;
                double p = 1.0 - (double)(i * j) / (n * s);
                dp[i][j] += (double) (n - i) * (s - j) / (n * s) * dp[i+1][j+1];
                dp[i][j] += (double) i * (s-j) / (n * s) * dp[i][j+1];
                dp[i][j] += (double) (n - i) * j / (n * s) * dp[i+1][j];
                dp[i][j] = (dp[i][j] + 1.0) / p;
            }
        }
        printf("%.4f\n", dp[0][0]);
    }
    return 0;
}

从上面这道题,我们再次看到了解决期望问题的思路,而且是用到了递推解决问题,其实可递推的原因,当我们把各个状态当成是一个个节点时,概率关系为有向边,我们可看到,可递推的问题其实就是这个关系图是无环的!那必须要用方程组解决的问题其实就是存在环! 而且我还要指出的是用高斯消元的时候,要注意误差的问题,最好把式子适当的增大,避免解小数,否则误差太大,估计也会卡题。

clj计数专题(期望DP等) 陈立杰计数专题讲稿。 立即下载

相关推荐

手把手教你为RK3588开发板适配RTL8211F网卡:设备树配置与PHY驱动匹配全流程

本文详细介绍了在RK3588开发板上适配RTL8211F千兆以太网PHY芯片的全流程,包括硬件原理图确认、设备树配置与PHY驱动匹配。通过实战案例和调试技巧,帮助开发者解决常见问题并优化网络性能,适用于嵌入式Linux开发中的Ethernet网络功能实现。

weixin_29184075的博客 526

ACM里的期望和概率问题 从入门到精(入)通(土)

起因:在2020年一场HDU多校赛上。有这么一题没做出来。 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6829 题目大意:有三个人,他们分别有X,Y,Z块钱(1<=X,Y,Z<=1e6),钱数最多的(如果不止一个那么随机等概率的选一个)随机等可能的选另一个人送他一块钱。直到三个人钱数相同为止。输出送钱轮数的期望,如果根本停不下来(希望のはな繋いだ绊が~),输出-1。 做题过程:很显然我们可以得到一个DP想法dp[i][j]表示钱第二多的和第三多

hollyidyllic的博客 2087

Zephyr、FreeRTOS 和 RT-Thread

你是…更适合用嵌入式新手,刚接触 RTOSFreeRTOS(入门简单)IoT 项目开发,需要 BLE/WiFi/MQTTZephyr(协议全)想快速构建可部署的产品Zephyr(模块统一)只做单个任务或简单状态机控制FreeRTOS(轻量)做平台化、持续集成、自动测试Zephyr(CI 支持强)

is0815的博客 2246

数学期望专题

数学期望专题

djhws144的博客 969

faster lio 回环 加入GTSAM优化的记录

对Faster lio 加入回环、gtsam优化,在室外建图遇到的问题和过程

Nico_jion的博客 2599

YOLO26 从零到工业落地全实战:自定义训练+多场景测试+边缘部署预备,踩坑实测100%可复现

很多人觉得训练是核心,其实不是——数据集的质量,直接决定了你模型的上限。我见过太多人,标注不规范、格式错误、数据集划分混乱,然后疯狂调参,训了几百轮还是不收敛,纯属白费功夫。我这次用的是工业零件缺陷检测自定义数据集,共3个类别:划痕、毛刺、变形,总计1200张图片,给大家讲一套标准的、可复现的数据集制作流程,不管你是做工业检测、安防、交通,都能直接套用。很多人拿到数据集,直接用默认命令训练,然后抱怨精度上不去。默认参数是给COCO数据集用的,你的自定义数据集,必须针对性调参,不然根本达不到最优效果。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 569

期望问题(转)

转自http://kicd.blog.163.com/blog/static/126961911200910168335852/ 近年的acm竞赛中,数学期望问题常有涉及,在以前也常让本人感到很头疼,近来突然开窍,掌握了基本的分析方法,希望对大家有帮助。写得浅薄,可能数学上不够严谨,只供理解。 首先,来看下期望有啥基本的公式。 对离散型随机变量x,其概率为p,有...

weixin_33898876的博客 561

Google Earth Engine:LandTrendr (Landsat Collection 2)全更新使用(代码调用+UI交互)

本文介绍了使用Landsat Collection 2进行连续变化监测的分析方法,包含代码实现和可视化界面两部分。代码部分通过Google Earth Engine平台运行LandTrendr算法,设置参数包括时间范围、光谱指数、变化检测阈值等,最终生成变化幅度和检测年份的可视化图层,并将结果导出至Google Drive。可视化界面部分展示了基于LandTrendr的土地覆盖变化结果,结合Landsat影像进行分析。整个方法实现了从数据处理到结果展示的完整流程,适用于森林覆盖等环境变化监测。

此星光明博客 211

【学习笔记】《概率与期望全家桶》(ACM / OI)概率与期望 / 概率论知识小结

整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 这块知识很少,但是题很难… 目录0x00 概率0x01 基本概念0x02 古典概率0x03 条件概率0x03.1 乘法公式0x03.2 全概率公式0x03.3 贝叶斯公式0x10 期望0x11 期望的线性性质0x12 利用递推或动态规划解决0x13 建立线性方程组解决 0x00 概率 0x01 基本概念 大量小学数学概念来袭 随机试验: 可在相同条件下重复进行,每次试验的结果可以不止一个且能事先明确所有结

繁凡さん的博客 4818

使用STM32实现简单的语音识别

此外,还需要将计算机的音频输出连接到外部音频放大器上,以便将测试语音播放到MAX9814麦克风模块。运行STM32代码后,系统将开始采集语音数据,并在采集完成后调用Python脚本进行MFCC特征提取。在本案例中,我们将使用STM32F4开发板、MAX9814麦克风模块和MFCC特征提取算法来实现语音识别。通过这个案例,我们可以了解到如何结合STM32开发板和Python实现语音识别,并可以根据需要进行相关扩展和优化。现在,我们可以编译和烧录STM32代码到开发板中,并准备好测试语音文件。

吃不胖. 1473

YOLOv10改进,YOLOv10二次创新C2f结构采用WTConv卷积(感受野的小波卷积),ECCV 2024

WTConv 的核心思想是通过结合卷积神经网络(CNN)的强大特征提取能力与小波变换的多尺度特性,来实现大感受野的卷积操作,同时避免传统大卷积核带来的参数爆炸问题。传统的卷积操作通过滑动小窗口在图像上逐步执行局部特征提取,感受野的大小直接取决于卷积核的尺寸。随着卷积核的增大,参数量呈指数增长,导致网络训练效率降低、计算资源消耗增加。为解决这些问题,WTConv 提出了在小波域中执行卷积操作的策略。小波变换是一种常用于信号处理的技术,能够将信号分解为不同频率成分。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1024

【期望】acm题目

百事世界杯之旅 描述: ……在2003年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字。只要凑齐所有百事球星的名字,就可以参加百事世界杯之旅的抽奖活动,获取球星背包、随身听,更可以赴日韩观看世界杯。还不赶快行动!……” 你关上电视,心想:假设有n个不同球星的名字,每个名字出现的概率相同,平均需要买几瓶饮料才能凑齐所有的名字呢? 输入: 输入一个数字n,2≤n≤33,表示不

Hi_jiaxinwei的博客 2934

深度学习图神经网络 (GNN) —— 处理图结构数据(六十九)

本文系统介绍了图神经网络(GNN)的核心概念、主流模型及其应用。主要内容包括: GNN基础:阐述了图结构数据的特性(节点数不定、连接不规则),以及GNN相比CNN/RNN的优势在于处理非欧式空间的图数据。 核心机制:重点讲解了消息传递框架(MPNN),通过聚合邻居信息迭代更新节点表示,并分析了GCN的归一化邻接矩阵计算和GAT的注意力权重机制。 典型模型: GCN:基于归一化邻接矩阵的特征传播 GAT:引入注意力机制区分邻居重要性 GraphSAGE:通过采样解决大图扩展性问题 GIN:理论表达能力最强的图

hello.reader 300

ACM 中的期望,概率 问题

一个简易的入门:点击打开链接 kuangbin的总结:点击打开链接 我搞的题目:点击打开链接 前段时间一直在做概率的题目。 一、期望 其中求解期望问题刚开始一直不理解。后来做得多了有感觉。 例:(有放回) 在5件产品有4件正品,1件次品,从中任取2件,记其中含正品的个数个数为随机变量ξ,则ξ的数学期望Eξ是 1.6 在5件产品有4件正品,1件次品,从中任取2件,记其中含正品的个

gg_gogoing的专栏 8606

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

简述期望问题的解法

原文地址:http://kicd.blog.163.com/blog/static/126961911200910168335852/ 近年的acm竞赛中,数学期望问题常有涉及,在以前也常让本人感到很头疼,近来突然开窍,掌握了基本的分析方法,希望对大家有帮助。写得浅薄,可能数学上不够严谨,只供理解。             首先,来看下期望有啥基本的公式。 对离散型随

虽然冲动永远比坚持容易~ 1407

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

数学期望

近年的acm竞赛中,数学期望问题常有涉及,在以前也常让本人感到很头疼,近来突然开窍,掌握了基本的分析方法,希望对大家有帮助。写得浅薄,可能数学上不够严谨,只供理解。 首先,来看下期望有啥基本的公式。 对离散型随机变量x,其概率为p,有简说期望类问题的解法 - Kicd - Kicds 对随机变量A、B,有 简说期望类问题的解法 - Kicd - Kicds 第二条式子

xtulollipop 947

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

概率与期望详解!一次精通oi中的概率期望

目录 基础概念 最大值不超过Y的期望 概率为P时期望成功次数 基础问题 拿球 随机游走 经典问题 期望线性性练习题 例题选讲 noip2016换教室 ...

Tyl18858230607的博客 2935

概率dp 求期望

先引用大牛文章解释原理

++ ‘s blog 1194

概率与期望总结

在一个无向图上,一个人从起点(一般就是编号为。

m0_72761451的博客 1033

背包问题解法

确定背包的容量 W,物品的数量 n,每个物品对应的重量数组 weight[n] 和价值数组 value[n]。

qq_40844444的博客 1052

【数值笔试二】条件期望、全期望、重复独立试验

其实一开始我在第一步就想不出来了为什么Nk就等于。:事件连续k-1次成功所需试验的次数。:事件连续k次成功所需试验的次数。(6)式是数列的递推式(

qq_50653422的博客 5178

条件期望3

条件期望

White__River的博客 692

【总结】概率与期望

前言 作为NOIP级的知识点,概率与期望算是比较困难的类型了。 但其实也不是无法解决的难题。 本文主要通过作者本人的刷题经历,对概率期望类题目进行总结。 概率 51Nod1639绑鞋带: 有n根鞋带混在一起,每根鞋带有两个鞋带头。现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。求最终只形成一个环的概率? 依次考虑每一步操作,现在已经选出来了一个头,它必须和非它所在的链的另一...

氧化钠的博客 2700
上一篇: hdu 5442 Favorite Donut(kmp+最小表示法)
下一篇: hdu 4407 SUM(容斥原理)
HelloWorld10086
博客等级 码龄12年 88粉丝 614原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值