计算数字列表的中位数
在数学课堂上,我们经常会接触到中位数的概念。中位数是指一组按顺序排列的数字中位于中间位置的数,这组数据中的一半比这个数字大,另一半比这个数字小。
那么如何计算中位数呢?数学中给出了一个简单的计算方法。假设一共有 N 个数字:
-
如果 N 为奇数,则中位数为第 (N+1)/2 个数。例如,对于数字列表 [2, 4, 6, 8, 10],一共有 5 个数,中位数就是第 3 个数:6。
-
如果 N 为偶数,则中位数为第 N/2 个和第 (N/2)+1 个数的平均数。例如,对于数字列表 [2, 4, 6, 8],一共有 4 个数,中位数是第 2 个数和第 3 个数的平均值:5。
现在,让我们编写一个名为 calc_median()
的函数,用于计算一个数字列表的中位数。该函数应返回浮点数类型的中位数。
num_list1 = [6, 9, 10, 9, 3]
num_list2 = [1, 10, 4, 1, 5, 2, 8, 8]
num_list3 = [0, 6, 2, 5, 9, 0, 5, 5, 10]
def calc_median(num_list):
# 首先将数字列表从小到大排序
num_list.sort()
# 获取列表中的元素个数
n = len(num_list)
# 数字个数为奇数
if n % 2 != 0:
index = int((n + 1) / 2 - 1)
median = float(num_list[index])
# 数字个数为偶数
else:
index1 = int(n / 2) - 1
index2 = int(n / 2)
median = float(num_list[index1] + num_list[index2]) / 2
return median
print(calc_median(num_list1))
print(calc_median(num_list2))
print(calc_median(num_list3))
以上是一个示例代码,通过调用 calc_median()
函数计算了三个数字列表的中位数,并打印出结果。
希望这篇文章对你理解中位数的计算方法有所帮助。如果你对其他数学概念或计算方法有任何疑问,请随时留言,我将尽力为你解答。