[白俊]2188号:統計学(Python)



質問する



私の答え

import sys
input=sys.stdin.readline

n=int(input())
arr=[]

for i in range(n):
    arr.append(int(input()))

arr.sort()#중앙값을 구하기 위해 정렬

print(round(sum(arr)/len(arr)))#1) 산술평균
print(arr[len(arr)//2])#2) 중앙값

#최빈값
dic=dict()
for i in arr:#빈도수 구하기
    if i in dic:
        dic[i]+=1
    else:
        dic[i]=1
        
mx=max(dic.values())#빈도수 중 최대값 구하기
mx_dic=[]#최빈값 숫자를 저장할 배열

for i in dic:#빈도수 딕셔너리에서
    if mx==dic[i]:#최빈값의 key저장
        mx_dic.append(i)

if len(mx_dic)>1:#최빈값이 여러개라면
    print(mx_dic[1])#두번째로 작은 값  3)최빈값
else:#하나라면
    print(mx_dic[0])#해당 값 출력  3)최빈값
    
print(max(arr)-min(arr))#4) 범위
方法
  • 題では算術は平均四捨五入するのでroundを使います.
  • の中央値を求めるためには、入力した数字をソートする必要がある.
  • の最低価格を求めてディックのバナーを使用しました.ディクシャナリーを用いて各数字の周波数を求める。にあげます.
    次に、周波数の中で最も値(最も頻繁な値)のある値を変数に格納します.
    次に、空の値のキー値を空の配列(mx dic)に追加し、複数の空の値があるかどうかに応じて値を出力します.
  • の最後の範囲は最低価格と最高価格の差なのでmaxとminを使えばいいです.