首页 > 其他分享 >期望

期望

时间:2024-11-14 19:47:07浏览次数:1  
标签:邮票 frac int MAXN 期望 dp

期望

定义

如果 \(X\) 是离散的随机变量,输出值为 \(x_1,x_2,\cdots\),和输出值的相应的概率为 \(p_1,p_2,\cdots\)(概率和为 \(1\))。

则 \(E(X) = \sum_{i} p_ix_i\)

例题

Revenge of "The Salary of AtCoder Inc."

[ABC326E] Revenge of "The Salary of AtCoder Inc."

青木是 AtCoder 公司的一名员工,他本月的工资由整数 \(N\) 和长度为 \(N\) 的序列 \(A\) 决定,具体如下。
首先,给他一个\(N\)面的骰子,该骰子以相等的概率显示从\(1\)到\(N\)的整数,以及一个变量\(x=0\)。

然后,重复以下步骤直到结束。

  • 掷一次骰子,让\(y\)成为结果。
    • 如果是\(x\lt y\),付给他\(A_y\)日元,让\(x=y\)。
    • 否则,终止该过程。

青木这个月的工资就是通过这个过程支付的总额。
求青木本月工资的对 \(998244353\) 取模后的结果。

思路:

根据期望的线性,工资的总期望 \(E\) 等于序列 \(A\) 上的每一个值乘以 \(p(i)\),其中 \(p(i)\) 表示骰子掷到 \(i\) 且有效的概率。

则 \(E = \sum p_ia_i\)。而

\[p_i = \frac{1}{n}\sum^{i - 1}_{j = 0} p_j \]

其中 \(\frac{1}{n}p_j\) 表示在 \(j\) 这个点,掷骰子掷到 \(i\) 的概率。其中 表示在 j 这个点,掷骰子掷到 i 是一个整体。

可以用前缀和优化计算 \(O(n)\).

code:

#include<iostream>
#include<algorithm>
using namespace std;
#define int long long
const int MAXN = 3e5 + 7;
const int MOD = 998244353;
int n;
int p[MAXN],prep[MAXN],a[MAXN];
int qpow(int a,int x){
	int res = 1;
	while(x){
		if(x & 1) res = res * a % MOD;
		a = a * a % MOD;
		x >>= 1;
	}
	return res;
}
signed main(){
	scanf("%lld", &n);
	for(int i = 1;i <= n;i++) scanf("%lld", &a[i]);
	p[0] = 1,prep[0] = 1;
	for(int i = 1;i <= n;i++){
		p[i] = prep[i - 1] * qpow(n,MOD - 2) % MOD;
		prep[i] = (prep[i - 1] + p[i]) % MOD;
	}
	int ans = 0;
	for(int i = 1;i <= n;i++){
		(ans += (a[i] * p[i])) %= MOD;
	}
	printf("%lld", ans);
	return 0;
}

Coupons

优惠券 Coupons

每张彩票上有一个漂亮图案,图案一共n种,如果你集齐了这n种图案就可以~~~~兑换大奖。

现在请问,在理想(平均)情况下,你买多少张彩票才能获得大奖的?

思路:

设 \(dp_i\) 为从第 \(i\) 种到 \(n\) 种所要经过的期望步数,易知 \(dp_n = 0\).

则:

\[dp_{n - 1} = \frac{1}{n} dp_n + \frac{n - 1}{n} dp_{n - 1} + 1\\ dp_{n - 2} = \frac{2}{n} dp_{n - 1} + \frac{n - 2}{n} dp_{n - 2} + 1\\ \vdots \]

我们归纳化简:

\[dp_i = \frac{n - i}{n} dp_{i + 1} + \frac{i}{n} dp_{i} + 1\\ dp_i = dp_{i + 1} + \frac{n}{n - i}\\ ans = \sum^{n}_{i = 1} \frac{n}{i} \]

循环统计答案即可.

我们分析过程: \(dp_{n - 1} = \frac{1}{n} dp_n + \frac{n - 1}{n} dp_{n - 1} + 1\)

\(\frac{1}{n} dp_n\) 表示有 \(\frac{1}{n}\) 的概率拿到未选择过的种类的期望,而 \(\frac{n - 1}{n}\) 的概率停在原地不动,而这两个操作都会使期望加 \(1\).

分析结束,式子成立,无代码.

收集邮票

P4550 收集邮票

有 \(n\) 种不同的邮票,皮皮想收集所有种类的邮票。唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是 \(n\) 种邮票中的哪一种是等概率的,概率均为 \(1/n\)。但是由于凡凡也很喜欢邮票,所以皮皮购买第 \(k\) 次邮票需要支付 \(k\) 元钱。

现在皮皮手中没有邮票,皮皮想知道自己得到所有种类的邮票需要花费的钱数目的期望。

首先我们设 \(f_i\) 表示从 \(i\) 种邮票收集到 \(n\) 种邮票的期望步数

那么易知 \(f_n\) = 0,且有:

\[f_{n - 1} = \frac{1}{n} f_n + \frac{n - 1}{n} f_{n - 1} + 1 \\ f_{n - 2} = \frac{2}{n} f_{n - 1} + \frac{n - 2}{n} f_{n - 2} + 1\\ \vdots \]

则 \(f_0 = \sum^{n}_{i = 1} \frac{n}{i}\),\(f_i = f_{i + 1} + \frac{n}{n - i}\)。

但是题目中的条件是 购买第k次邮票需要支付k元钱,所以我们需要设 \(dp_i\) 为从 \(i\) 种邮票拿到 \(n\) 种的期望钱数,显然 \(dp_n = 0\),而我们有 \(\frac{i}{n}\) 的概率取到已经取到过的,期望为 \(\frac{i}{n} (dp_i + f_i + 1)\),有 \(\frac{n - i}{n}\) 的概率取到没有的,期望为 \(\frac{n - i}{n} (dp_{i + 1} + f_{i + 1} + 1)\)。

所以:

\[dp_i = \frac{i}{n} (dp_i + f_i + 1) + \frac{n - i}{n}(dp_{i + 1} + f_{i + 1} + 1) \]

化简得到:

\[dp_i = dp_{i + 1} + 1 + f_{i + 1} + \frac{i * (1 + f_i)}{n - i} \]

最后输出 dp[0] 即可。

code:

#include<iostream>
#include<algorithm>
using namespace std;
const int MAXN = 1e4 + 7;
int n;
double f[MAXN];
double dp[MAXN];
int main(){
	scanf("%d", &n);
	for(int i = n - 1;i >= 0;i--) f[i] = f[i + 1] + n * 1.0 / (n - i);
	for(int i = n - 1;i >= 0;i--) dp[i] = dp[i + 1] + 1 + f[i + 1] + i * (1 + f[i]) / (n - i);
	printf("%.2lf", dp[0]);
	return 0;
}

代码超短。

OSU!

P1654 OSU!

一共有 \(n\) 次操作,每次操作只有成功与失败之分,成功对应 \(1\),失败对应 \(0\),\(n\) 次操作对应为 \(1\) 个长度为 \(n\) 的 01 串。在这个串中连续的 \(X\) 个 \(1\) 可以贡献 \(X^3\) 的分数,这 \(x\) 个 \(1\) 不能被其他连续的 \(1\) 所包含(也就是极长的一串 \(1\),具体见样例解释)

现在给出 \(n\),以及每个操作的成功率,请你输出期望分数,输出四舍五入后保留 \(1\) 位小数。

我们考虑第 \(i\) 位和第 \(i + 1\) 位,设第 \(i\) 位为 \(1\) 产生连续的成功操作的长度的期望为 \(x\),则分数期望为 \(x^3\)。到 \(i + 1\) 位时,长度的期望变为 \((x + 1) \times p_{i + 1}\),分数的期望变成 \(((x + 1) \times p_{i + 1}) ^ 3 = p_{i + 1}^3 \times (x ^ 3 + 3 x ^ 2 + 3 x + 1)\)。

观察式子,我们发现我们需要知道 \(x,x^2,x^3\) 的期望。

则我们设 \(x_i,y_i,z_i\) 分别表示 \(1,2,3\) 次方的期望,则有:

\[x_i = (x_{i - 1} + 1) \times p_i \]

\[y_i = (y_{i - 1} + 2x_{i - 1} + 1) \times p_i \]

\[z_i = (z_{i - 1} + 3y_{i - 1} + 3x_{i - 1} + 1) \times p_i \]

但是我们的答案不是单独一个点对整个序列产生分数的期望,所以要改一下三次方的式子:

\[z_i = (z_{i - 1} + 3y_{i - 1} + 3x_{i - 1} + 1) \times p_i + z_{i - 1} \times (i - p_i) \]

\[z_i = z_{i - 1} + (3y_{i - 1} + 3x_{i - 1} + 1) \times p_i \]

答案就是 \(z_n\)。

code:

#include<iostream>
#include<algorithm>
using namespace std;
const int MAXN = 1e5 + 7;
double x1[MAXN],x2[MAXN],x3[MAXN];
int n;
double p[MAXN];
int main(){
	cin >> n;
	for(int i = 1;i <= n;i++) cin >> p[i];
	for(int i = 1;i <= n;i++) x1[i] = (x1[i - 1] + 1) * p[i];
	for(int i = 1;i <= n;i++) x2[i] = (x2[i - 1] + 2 * x1[i - 1] + 1) * p[i];
	for(int i = 1;i <= n;i++) x3[i] = x3[i - 1] + (3 * x2[i - 1] + 3 * x1[i - 1] + 1) * p[i];
	printf("%.1lf", x3[n]);
	return 0;
}

标签:邮票,frac,int,MAXN,期望,dp
From: https://www.cnblogs.com/wyl123ly/p/18546662

相关文章

  • 概率与期望
    概率与期望1.事件i.实验,结果与结局事件A是否发生取决于一系列影响它的因素,这些因素影响A的过程称为一次实验(experiment)或试验(trial)。一次试验的结果(result)称为它的结局(outcome)result指由原因所引起的结果outcome强调事件特有的结局,表示最终的结果......
  • 期望动态规划
    概率与期望定义期望:对于一个离散随机变量\(X\),自变量的取值范围为\(\{x_1,x_2,x_3,...\,,x_n\}\),\(P(x_i)\)为\(X=x_i\)的概率。其期望被定义为:\[E(X)=\sum^n_{i=1}x_iP(x_i)\]简单理解就是加权平均。公式贝叶斯公式:全概率公式:应用1、有\(k\)只小鸟,每只都只能活一天,但......
  • 关于期望dp的一些个人理解
    本人概率期望菜的一批,写一下博客来加深印象期望的基本定义首先期望本身是一个加权平均值,表示把每种情况按照概率发生后总和除以总的发生次数,这是定义法,然后合并一下就是:\[E=\sum_ip_i\timesval_i\]其中\(p_i\)表示事件\(i\)发生的概率,满足\(\sump_i=1\)关于期望......
  • CF605E Intergalaxy Trips 与 对期望的进一步理解
    简化题面给一张无向图,在每一时刻,每一条边权值都为\(1\),出现的概率都是给定的(但不完全相同),问最优决策下\(1\)到\(n\)的期望。Attention:是每条边都会有概率出现,而不是走每条边都会有概率成功,这就意味着,我在某一点的不同的边的出现的情况下,我会做出选择。#sol.定义......
  • 项目经理如何确保项目成果符合客户期望
    项目经理确保项目成果符合客户期望的方式主要包括:明确需求、积极沟通、设立里程碑、质量控制、客户参与。项目经理首先需要对项目的需求进行彻底的理解和明确,这是确保最终成果能满足客户期望的基础。明确需求主要包括收集详尽的用户故事、制定准确的项目范围、考虑潜在的变更请求......
  • 【专题】概率期望
    前言期望的计算公式:\[E(X)=\sum_i{i\timesP(x=i)}\]期望的线性性:\[E(X+Y)=E(X)+E(Y),E(kX)=kE(X)\]百事世界杯之旅[SHOI2002]百事世界杯之旅题目描述假设有\(n\)个不同的球星名字,每个名字出现的概率相同,平均需要买几瓶饮料才能凑齐所有的名字呢?解:令\(f(i)\)表......
  • F - 期望
    F-期望题意你有\(n\)个开关,每个开关进行操作需要\(t_i\)的时间,有\(\frac{a_i}{b_i}\)的概率可以打开,剩下的概率会导致全部开关关闭,求开启所有开关的期望时间。思路很容易想到先搞出期望DP转移方程,然后就可以贪心地唯一确定操作开关的顺序,即使不幸失败导致所有开关关......
  • 概率论基础02_随机变量及其分布&多维随机变量及其分布&期望与方差(上)
    目录一、随机变量及其分布1、定义2、离散型随机变量及其概率分布3、连续型随机变量及其概率分布4、分布函数5、常见分布5.10-1分布5.2几何分布5.3二项分布5.4泊松分布5.5均匀分布5.6指数分布5.7正态分布5.7.1标准正态分布5.7.2正态分布标准化6、离散型......
  • 概率期望乱做
    目录写在前面EasyMediumP1365、CF235B、P1654CF280CP4550CF1042EICPC2024online2-LP6046Hard写在最后写在前面唉唉数学大傻逼来写写典题。题目来源:【数学2-3】概率与统计xzy的概率期望题单vpCodeforces标签筛选EasyP1297:仅需考虑相邻位置的选项数量,即可计算每个......
  • BLE配对时期望主机采用设置的连接参数配置
    测试发现,部分蓝牙主机会在连接上我们设备之后分配较大的连接间隔,即使我们后续将连接间隔协商至较小值后,也会被主机更新回较大的间隔。可在BLE初始化阶段将以下参数配置进去,由蓝牙协议栈在配对期间告知主机我们所需要的连接参数即可,gapPeriConnectParams_tConnectParams;Conne......