题解:数值操作的期望计算问题
一、题目背景与分析
题目描述了一个概率相关的数学期望问题,核心是在两次随机操作后,计算两个数之和的期望值。小雨每次从两个整数 ( a ) 和 ( b ) 中随机选择一个数乘以 2,经过两次操作后,我们需要计算结果之和的期望值。
数学期望是概率论的核心概念之一,用于描述随机变量可能取值的加权平均值。该题目考察了数学期望的建模、计算过程,以及对结果的综合理解。
二、题目解析与计算公式
1. 操作描述
对于两个数 ( a ) 和 ( b ):
- 每次随机选择一个数乘以 2(两个数被选中的概率均为 ( \frac{1}{2} ))。
- 连续操作两次,共产生 ( 2 \times 2 = 4 ) 种可能结果。
2. 计算过程
在数学期望中,随机变量的可能取值需要根据概率进行加权平均。本题的操作逻辑可以分为两步逐层计算:
- 第一步:选择一个数乘以 2
随机选择 ( a ) 或 ( b ):- 选择 ( a ),结果为 ( 2a + b );
- 选择 ( b ),结果为 ( a + 2b )。
对这两种情况加权平均,得到第一步的期望结果:
- 第二步:再次随机选择一个数乘以 2
基于第一步结果,随机选择 ( a ) 或 ( b ),构造出 4 种可能结果:- 第一次选 ( a ),第二次选 ( a ): ( 4a + b );
- 第一次选 ( a ),第二次选 ( b ): ( 2a + 2b );
- 第一次选 ( b ),第二次选 ( b ): ( a + 4b );
- 第一次选 ( b ),第二次选 ( a ): ( 2a + 2b )。
对这四种情况加权平均,得到第二步的期望结果:
简化后:
因此,经过两次随机操作后,两个数之和的数学期望值为:
三、代码实现
根据上述计算过程,代码实现如下:
def solution(a: int, b: int) -> str:
# 计算第一步的结果
E1_a = 2 * a + b # 第一次选择 a
E1_b = a + 2 * b # 第一次选择 b
# 计算第二步的结果
E2_a = 4 * a + b # 第二次再选 a
E2_b = 2 * a + 2 * b # 第二次交替选
E2_c = a + 4 * b # 第二次再选 b
# 期望计算
result = (1/4) * (E2_a + E2_b + E2_c + E2_b)
return f"{result:.2f}"
# 测试用例
print(solution(3, 3)) # 输出: "13.50"
print(solution(5, 7)) # 输出: "27.00"
print(solution(1, 1)) # 输出: "4.50"