pythonとhaskell, perl6で加重平均
python。
最後はnumpyの内積(ドット積)を使っている(ずるい?)
>>> weight = [ 0.22, 0.14, 0.04, 0.12, 0.22, 0.26 ] >>> record = [ 64, 51, 132, 24, 19, 11 ] >>> sum( a * x for (a, x) in zip(weight, record) ) 36.42 >>> sum(map(lambda a, x: a * x, weight, record)) 36.42 >>> import operator as op >>> sum(map(op.mul, weight, record)) 36.42 >>> import numpy as np >>> np.dot(weight, record) 36.420000000000002
Prelude> let weight = [ 0.22, 0.14, 0.04, 0.12, 0.22, 0.26 ] Prelude> let record = [ 64, 51, 132, 24, 19, 11 ] Prelude> sum $ zipWith (*) weight record 36.42
perl6も面白い。
> my @weight = 0.22, 0.14, 0.04, 0.12, 0.22, 0.26 [0.22 0.14 0.04 0.12 0.22 0.26] > my @record = 64, 51, 132, 24, 19, 11 [64 51 132 24 19 11] > [+] @weight >>*<< @record 36.42