919: 我们被平均了

简介: 919: 我们被平均了
题目描述

算术平均数的定义如下:

x=(x1+x2+x3+...+xn)/n

表达的是一个由数字构成的集合中的平均值,如一个班的平均成绩、一个群体的平均收入等,常常用来衡量一个群体的平均水平,如一个班的平均分反应了该班的成绩水平。

但平均数常常会欺骗人,如一个单位只有5个人,每月的工资收入分别为12000,10000,4000,3500,3000,平均工资是6500,但是大部分人的工资低于平均值,不具有代表性,大部分人感觉被平均了。

能真正具有代表性的数称为中位数,定义如下:

假设有n个数据,将它们从小到大一次排列为:x1,x2,...,xn,则,如果n为奇数,则第(n+1)/2位即为中位数,如果n为偶数,则第n/2和n/2+1的算术平均数为中位数。

如上面的收入数据中,中位数为4000,很能代表大部分人的收入水平。

你的任务是将给定数据中的中位数找出来。

输入

两行,第一行是数据的个数N(N<=500),第二行有N个浮点数,用空格隔开。

输出

中位数,保留两位小数。

样例输入复制

4

9.6 8.4 9.4 9.9

样例输出复制

9.50

n=int(input())
nums=[0]*n
s=input().split(" ")
for i in range(0,n):
    nums[i]=float(s[i])
nums1=sorted(nums)
if n%2==0:
    print(format((nums1[n // 2 - 1] + nums1[n // 2]) / 2, ".2f"))
else:
    print(format(nums1[n // 2],".2f"))

或者

n = int(input())
data = list(map(float, input().split()))
data.sort()
if n % 2 == 0:
    median = (data[n // 2 - 1] + data[n // 2]) / 2
else:
    median = data[n // 2]
print("{:.2f}".format(median))

这段代码首先将输入的浮点数列表转换为浮点数类型,并按升序排序。然后根据数据集的长度,选择正确的中位数计算方式。如果数据集长度为偶数,中位数是中间两个数的平均值;如果数据集长度为奇数,中位数就是中间的数。最后将中位数输出,保留两位小数。

相关文章
|
7月前
土方量的几种计算方法
土方量的几种计算方法
208 1
|
Python
Python 金融量化 均线系统交易策略专题(简单移动平均,加权移动平均,指数加权移动平均,异同移动平均MACD等解读与绘图)
Python 金融量化 均线系统交易策略专题(简单移动平均,加权移动平均,指数加权移动平均,异同移动平均MACD等解读与绘图)
956 0
Python 金融量化 均线系统交易策略专题(简单移动平均,加权移动平均,指数加权移动平均,异同移动平均MACD等解读与绘图)
|
6天前
|
算法 测试技术 C++
【大根堆】【C++算法】871 最低加油次数
【大根堆】【C++算法】871 最低加油次数
|
11月前
|
测试技术
性能测试(21)——常用平均并发数计算公式
PV:(Page View):即页面访问量,每打开一次页面PV计数+1,刷新页面也是。PV只统计页面访问次数。 UV(Unique Visitor):唯一访问用户数,用来衡量真实访问网站的用户数量。 一般用UV统计用户活跃数,用PV统计用户访问页面的频率
454 0
性能测试(21)——常用平均并发数计算公式
计算平均成绩
计算平均成绩
66 0
HIMA 984865165 反映了分数带宽与频率增加的对数
HIMA 984865165 反映了分数带宽与频率增加的对数
HIMA 984865165 反映了分数带宽与频率增加的对数
|
测试技术
L1-4 调和平均 (10分)
L1-4 调和平均 题解
108 0
|
测试技术
L1-068 调和平均 (10 分)
L1-068 调和平均 (10 分)
189 0
加权平均的重要作用
加权平均的重要作用
523 0
加权平均的重要作用