数值操作的期望计算问题
1.问题描述
小R有两个正整数 和 ,她将随机选择其中一个数并将其乘以 。这个操作会进行两次,操作后的两个数之和会有所变化。小R想知道,操作结束后,两个数之和的期望值是多少?
2.解题思路
2.1问题分析
- 输入:两个正整数 和 。
- 输出:操作结束后,两个数之和的期望值,格式化为两位小数的字符串。
- 操作:每次随机选择一个数并将其乘以 ,操作进行两次。
2.2基本思路
-
计算所有可能的结果:
- 第一次选择 并乘以 ,第二次选择 并乘以 。
- 第一次选择 并乘以 ,第二次选择 并乘以 。
- 第一次选择 并乘以 ,第二次选择 并乘以 。
- 第一次选择 并乘以 ,第二次选择 并乘以 。
-
计算期望值:
- 将所有可能的结果相加,然后除以结果的总数(4)。
-
格式化输出:
- 将期望值格式化为两位小数的字符串。
2.3示例
-
示例1:
-
输入:
a = 3, b = 3
-
输出:
'13.50'
-
解释:
- 可能的结果:
12, 12, 15, 15
- 期望值:
(12+ 12+15+ 15) / 4 =13.50
- 格式化输出:
'13.50'
- 可能的结果:
-
-
示例2:
-
输入:
a = 5, b = 7
-
输出:
'27.00'
-
解释:
- 可能的结果:
24, 24, 27, 33
- 期望值:
(24 + 24 + 27 + 33) / 4 = 27.00
- 格式化输出:
'27.00'
- 可能的结果:
-
-
示例3:
-
输入:
a = 1, b = 1
-
输出:
'4.50'
-
解释:
- 可能的结果:
4, 4, 5, 5
- 期望值:
(4 + 4 + 5 + 5) / 4 = 4.25
- 格式化输出:
'4.50'
- 可能的结果:
-
2.4代码
def solution(a: int, b: int) -> str:
sum1 = 2 * a + 2 * b
sum2 = 2 * b + 2*a
sum3 = a + 2 * b * 2
sum4 = a * 2 * 2 + b
# 计算期望值
expected_value = (sum1 + sum2 + sum3 + sum4) / 4
# 格式化输出为两位小数的字符串
return f"{expected_value:.2f}"
if __name__ == '__main__':
print(solution(3, 3) == '13.50')
print(solution(5, 7) == '27.00')
print(solution(1, 1) == '4.50')
3.代码详解
-
计算所有可能的结果:
sum1
表示两次都选择 并乘以 。sum2
表示两次都选择 并乘以 。sum3
表示第一次选择 并乘以 ,第二次选择 。sum4
表示第一次选择 并乘以 ,第二次选择 。
-
计算期望值:
- 将所有可能的结果相加,然后除以结果的总数(4)。
-
格式化输出:
- 使用
f"{expected_value:.2f}"
将期望值格式化为两位小数的字符串。
- 使用
总结: 通过计算所有可能的操作结果并求其平均值,我们可以得到操作结束后两个数之和的期望值。代码中正确地计算了这些结果,并返回了格式化后的期望值。
1.问题描述
给定一个字符串 s
,编写一个函数,将字符串中的小写字母 a
替换为 "%100"
,并返回替换后的字符串。
a替换函数
2.解题思路
2.1问题分析
- 输入:一个字符串
s
。 - 输出:一个字符串,其中所有小写字母
a
被替换为"%100"
。
2.2基本思路
- 遍历字符串
s
中的每一个字符。 - 如果当前字符是
a
,则将其替换为"%100"
。 - 否则,保持字符不变。
- 将所有处理后的字符拼接成一个新的字符串并返回。
2.4代码
def solution(s: str) -> str:
# 初始化结果字符串
res = ""
# 遍历输入字符串中的每一个字符
for c in s:
# 如果字符是 'a',则替换为 "%100"
if c == 'a':
res += "%100"
# 否则,保持字符不变
else:
res += c
# 返回结果字符串
return res
# 测试代码
if __name__ == '__main__':
print(solution(s="abcdwa") == '%100bcdw%100')
print(solution(s="banana") == 'b%100n%100n%100')
print(solution(s="apple") == '%100pple')
3.代码详解
-
函数定义:
def solution(s: str) -> str:
- 定义了一个名为
solution
的函数,接受一个字符串s
作为输入,并返回一个字符串。
- 定义了一个名为
-
初始化结果字符串:
res = ""
- 初始化一个空字符串
res
,用于存储替换后的结果。
- 初始化一个空字符串
-
遍历字符串:
for c in s:
- 使用
for
循环遍历输入字符串s
中的每一个字符c
。
- 使用
-
字符替换:
if c == 'a':
:检查当前字符是否为a
。res += "%100"
:如果是a
,则将其替换为"%100"
并追加到res
中。else: res += c
:如果不是a
,则直接将字符c
追加到res
中。
-
返回结果:
return res
- 遍历完成后,返回结果字符串
res
。
- 遍历完成后,返回结果字符串
至此,完结撒花!