Я думаю, что это должно быть сделано:
sim(i,j) {
item1 = 0
item2 = 0
// calculate the sums for the ith and jth items
// minus each users' avg rating.
for (k = 0; k < length(data); k++) {
item1 += (data[k][i] - avg(data[k]))
item2 += (data[k][j] - avg(data[k]))
}
result (item1*item2)/(sqrt(item1*item1)*sqrt(item2*item2))
return result
}
Вам все еще нужно будет реализовать функцию усреднения, но я предполагаю, что для этого подойдет простое среднее.