实现 calculate_weapon_damage() 函数
在这一步中,你将实现 calculate_weapon_damage() 函数来计算两种激光武器的伤害值。
- 在
calculate_weapon_damage.py 文件中,定义具有以下签名的 calculate_weapon_damage() 函数:
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]:
## 你的代码在这里
pass
-
实现计算武器 A 和武器 B 伤害值的逻辑。你可以按照以下步骤进行:
- 检查输入数组
test1 和 test2 的长度是否正确(各有 3 个元素)。如果不正确,返回空列表 []。
- 将输入数组中的值解包到变量
a1、b1、total1 和 a2、b2、total2 中。
- 求解线性方程组以找到伤害值
x(用于武器 A)和 y(用于武器 B)。你可以使用以下方程:
a1 * x + b1 * y = total1
a2 * x + b2 * y = total2
- 将计算出的
x 和 y 值转换为整数,并作为列表 [x, y] 返回。
- 如果在求解方程时出现
ZeroDivisionError,返回空列表 []。
代码如下:
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]:
if len(test1)!= 3 or len(test2)!= 3:
return []
a1, b1, total1 = test1
a2, b2, total2 = test2
## a1 * x + b1 * y = total1
## a2 * x + b2 * y = total2
try:
y = (total1 * a2 - total2 * a1) / (b1 * a2 - b2 * a1)
x = (total1 - b1 * y) / a1
except ZeroDivisionError:
return []
return [int(x), int(y)]
-
在文件末尾添加以下代码以测试 calculate_weapon_damage() 函数:
if __name__ == "__main__":
print(calculate_weapon_damage([4, 5, 22], [3, 2, 13]))
运行脚本时,这将打印出计算出的伤害值。