用python求两个长度均为n的序列A和B的中位数
时间: 2024-11-13 14:40:11 浏览: 1
在Python中计算两个长度相等的序列A和B的中位数,你可以按照以下步骤操作:
1. 首先,你需要合并这两个序列,形成一个新的列表C,将A和B的元素按顺序连接起来。
```python
A = [a1, a2, ..., an]
B = [b1, b2, ..., bn]
C = A + B
```
2. 接下来,对这个新列表C进行排序。由于Python已经内置了排序功能,可以很方便地使用`sorted()`函数。
```python
C = sorted(C)
```
3. 中位数取决于序列的长度n。如果n是奇数,那么中位数就是排序后的中间元素;如果是偶数,中位数则是中间两个数的平均值。
- 如果n是奇数,中位数索引为 `n // 2` (整除结果)。
- 如果n是偶数,中位数索引为 `n // 2 - 1` 和 `n // 2`。
```python
if n % 2 == 0:
median = (C[n//2 - 1] + C[n//2]) / 2
else:
median = C[n//2]
```
4. 最后返回计算出的中位数。
完整代码示例:
```python
def median_of_two_sequences(A, B):
C = A + B
C.sort()
n = len(C)
if n % 2 == 0:
return (C[n//2 - 1] + C[n//2]) / 2
else:
return C[n//2]
# 测试
A = [5, 2, 9]
B = [1, 7, 3]
print(median_of_two_sequences(A, B)) # 输出:4.0 (因为(2+3)/2=2.5)
```
阅读全文