红方有多个基地,每个基地具备多种不同导弹,打击蓝方基地(考虑距离)能否打击到问题,建设成矩阵,0表示不能打到,1表示能打到,给出具体代码
时间: 2024-10-13 19:03:59 浏览: 12
在解决这个问题时,我们可以创建一个二维矩阵来表示红方基地和蓝方基地之间的可达性。每个元素的值可以是一个布尔值,1表示可以从该红方基地发射导弹击中相应的蓝方基地,0表示无法打击。由于你没有提供具体的地理位置数据,这里假设我们有一个简单的示例,比如基于直线距离判断是否能直接攻击。
```python
# 定义红方基地位置列表
red_bases = [(1, 1), (3, 4), (5, 7)] # 根据实际需求替换坐标
# 定义蓝方基地位置列表
blue_bases = [(2, 3), (4, 6), (6, 9)] # 根据实际需求替换坐标
# 创建矩阵,大小等于红蓝方基地数量,初始值为0
attack_matrix = [[0] * len(blue_bases) for _ in range(len(red_bases))]
def can_attack(source, target):
# 这里简单地假设射程固定,比如每个基地的导弹都可以覆盖半径为1的圆形区域
max_range = 1 # 可以根据需要调整
return sqrt((source[0] - target[0])**2 + (source[1] - target[1])**2) <= max_range
# 遍历红方基地和蓝方基地,计算并填充攻击矩阵
for i, red_base in enumerate(red_bases):
for j, blue_base in enumerate(blue_bases):
attack_matrix[i][j] = can_attack(red_base, blue_base)
# 输出结果矩阵
for row in attack_matrix:
print(row)
```
阅读全文