На самом деле я не очень понимаю, как работает скалярное произведение.
Учитывая два вектора a = (a_1,a_2,...,a_n)
и b = (b_1,b_2,...,b_n)
, скалярное произведение представляет собой сумму a_1b_1 + a_2b_2 + ... + a_nb_n
.
В Python:
def dot(a, b):
if len(a) != len(b):
raise ValueError("a and b have differing sizes")
sum = 0
for i in range(len(a)):
sum += a[i] * b[i]
return sum