白駿1546:平均|Python

1361 ワード

質問する


勢俊は期末試験に失敗した.勢俊は点数を偽造して家に持ち帰ることにした.まず勢俊は自分の点数の中で最高値を選んだ.この値をMと言います.そしてすべての点数を点数/M*100に変更しました.
例えば、ポテンシャル俊の最高点数が70で、数学点数が50であれば、数学点数は50/70*100で71.43点である.
上記の方法で勢俊の成績を再計算する場合は、新しい平均値を求めるプログラムを作成してください.

私がここでうとうとしているのではないでしょうか.やった...
乗算と除算の間に交換法則が成立すると思います.
50/7000は0.0071...このまま待っていたら.
除法では交換法則が成立しないので,左から解く.
)小学校に再入学します(目を閉じて...)

入力


1行目は試験科目の個数Nを与える.この値は1000以下です.2列目は勢俊の今の成績をあげた.この値は100以下の整数ではなく、少なくとも1つの値が0より大きい.


しゅつりょく


最初の行に新しい平均値を出力します.実際の正解と出力値の絶対誤差または相対誤差が10−2以下であることが正解である.


に答える

n=int(input())
OrgList = list(map(int, input().split()))
m=max(OrgList)

NewList=[]
for score in OrgList:
    NewList.append(score/m*100)
result= sum(NewList)/n
print(result)
入力科目数n
元の点数をOrgListに入れる
(オリジナル歌手…の意味…ははは…)
map()関数が使用されます.map(変換関数、データ)
データはlist,tuple,input()で入力を受け付ける
.split()は、スペースを基準に文字を区切ります.
追加します.split(「区切り文字」)/.split(「区切り文字」、分割数)
の形態も存在する.
max()関数を使用して元の点数の最大値を検索

新しい平均NewListの生成
for文対score変数を使用し、範囲はOrgList
このときscoreはOrgListの値です
NewListでappendを使用して変形スコアを追加
その結果、最終的な変形値の平均値が見つかります.
しかしPythonには平均的な内蔵関数がないようです...
実はcにもないようです.
自然にavg弾いてくれた私.ちょっと見慣れない.
調べてみるとnumpyモジュールで内蔵関数が使えるそうです.
うんざりだ.ほほほ