本文共 856 字,大约阅读时间需要 2 分钟。
要计算由多个部分组成的武器伤害的期望值,每个部分可以是固定伤害或掷骰子的和。以下是解决方案:
以下是完整的Python代码:
while True: try: s = input().split('+') ans = 0.0 for part in s: if 'd' in part: n, x = part.split('d') ans += (int(n) * (int(x) + 1)) / 2 else: ans += int(part) if ans.is_integer(): print(int(ans)) else: print("{0:.1f}".format(ans)) except: break 步骤解释:
input().split('+')将字符串拆分成各个部分。(n*(x+1))/2计算期望值;固定伤害直接加到总和中。示例:对于输入“2d6+1d70+3”,计算步骤如下:
(2*(6+1))/2 = 7(1*(70+1))/2 = 35.5输出结果为45.5。
转载地址:http://pryg.baihongyu.com/