迭代期望和方差(iterated expectation,variance)

本文探讨了迭代期望和方差的概念。期望作为概率论中的重要概念,而方差则可以分解为条件内的方差和条件间的方差,类比于统计学中的样本内和样本间方差。通过一个独立随机商店和花钱的例题进行了解释。
摘要由CSDN通过智能技术生成

1.期望在这里插入图片描述
2.方差:可看成是Yconditional universal内X的方差和conditional universal间X的方差两部分组成(类似于样本内和样本间的方差,或者种内和种间的方差(参看统计学F分布))。
在这里插入图片描述

例题:独立随机商店,独立随机花钱

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
相关课程链接:https://www.bilibili.com/video/av6182731/?p=44

在C语言中,生成具有特定期望(均值)和方差的随机数通常需要先生成具有特定分布的随机数,然后根据期望方差进行调整。对于正态分布的随机数,可以通过Box-Muller变换或其他方法生成服从标准正态分布(均值为0,方差为1)的随机数,然后将这些随机数转换为具有任意期望方差的正态分布随机数。 以下是生成具有特定期望(mean)和方差variance)的正态分布随机数的步骤: 1. 首先,生成两个独立的、服从标准正态分布N(0,1)的随机数U1和U2。这可以通过Box-Muller变换实现,该变换需要从均匀分布U(0,1)生成两个独立的随机数。 2. 接着,计算标准正态分布的随机数Z,通过公式: Z = sqrt(-2 * log(U1)) * cos(2 * PI * U2) 3. 然后,将标准正态分布的随机数Z转换为具有期望mean和方差variance的正态分布随机数X,使用公式: X = mean + sqrt(variance) * Z 在C语言中实现这一过程,可以使用标准库函数rand()生成均匀分布的随机数,并通过适当的数学运算来得到最终结果。以下是示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> double generateNormalRandom(double mean, double variance) { const double PI = 3.14159265358979323846; double u1 = (double)rand() / RAND_MAX; // U(0,1) double u2 = (double)rand() / RAND_MAX; // U(0,1) double z = sqrt(-2.0 * log(u1)) * cos(2.0 * PI * u2); return mean + sqrt(variance) * z; } int main() { srand((unsigned)time(NULL)); // 初始化随机数种子 double mean = 100.0; // 希望的均值 double variance = 15.0; // 希望的方差 // 生成随机数 double normalRandom = generateNormalRandom(mean, variance); printf("Generated normal random number: %f\n", normalRandom); return 0; } ``` 需要注意的是,这个方法仅适用于生成正态分布的随机数。如果需要生成其他分布的随机数,则需要采用不同的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值