def?getSubjectStats(subject,?weights):
????'''
???????e.g.
???????subject:[['Bart','geology'],[10,5,85]]--grades即是[10,5,85]
???????weights:[0.3,0.2,0.5]
????'''
????return?[[elt[0],?elt[1],?avg(elt[1],?weights)]
????????????for?elt?in?subject]
????????????
def?dotProduct(a,b):
????result?=?0.0
????for?i?in?range(len(a)):
????????result?+=?a[i]*b[i]
????return?result????
????
def?avg(grades,?weights):
????try:
????????return?dotProduct(grades,?weights)/len(grades)#這幾個(gè)函數(shù)就是為了求同學(xué)加權(quán)平均成績(jī),但是這里是不是錯(cuò)了?/len(grades)這個(gè)地方不對(duì)吧?加權(quán)平均數(shù)比如Bart地理成績(jī)是[10,5,85],三個(gè)各占比例[0.3,0.2,0.5],那么應(yīng)該是(10*0.3)+(5*0.2)+(85*0.5)就可以了啊,就算再除以那也是除以%100才對(duì),怎么能再除以3??大神能否解答一下!
????except?ZeroDivisionError:
????????print?'no?grades?data'
????????return?0.0
1 回答

奇風(fēng)
TA貢獻(xiàn)6條經(jīng)驗(yàn) 獲得超0個(gè)贊
百度:
加權(quán)平均值即將各數(shù)值乘以相應(yīng)的權(quán)數(shù),然后加總求和得到總體值,再除以總的單位數(shù)。
單位數(shù)是數(shù)的個(gè)數(shù)在這里是3
添加回答
舉報(bào)
0/150
提交
取消