任意数量离散随机变量和的概率分布计算通用算法
计算任意数量离散随机变量之和的概率分布
假设有一个List<HashMap<int, float>>结构(不针对特定编程语言),其中每个HashMap<int, float>代表一个离散随机变量的概率分布——比如公平硬币的分布可表示为{0: 0.5, 1: 0.5}(正面=1,反面=0)。当存在n个这类离散随机变量时,它们的分布会被存储为一个包含n个HashMap的List。
核心问题:如何遍历这个List,得到这些随机变量之和的概率分布?
示例参考
以三个随机变量X、Y、Z为例,求W=X+Y+Z的分布时,可通过嵌套循环实现:
hashmap_w = {} for (kx, vx) in hashmap_x.items(): for (ky, vy) in hashmap_y.items(): for (kz, vz) in hashmap_z.items(): total_key = kx + ky + kz total_prob = vx * vy * vz if total_key in hashmap_w: hashmap_w[total_key] += total_prob else: hashmap_w[total_key] = total_prob
如何将这段代码泛化,使其能够处理任意数量的随机变量?
内容的提问来源于stack exchange,提问作者Tadeo Hepperle
相关产品推荐
相关产品推荐

