Вам подаются на вход два вектора a и b в трехмерном пространстве. Реализуйте их скалярное произведение с помощью numpy и без

import numpy as np

def no_numpy_scalar(a, b):

    a = []
    b = []
    s = 0
    for i, j in zip(a, b):
        s = s + a[i]*b[j]
    result = s
    return result

def numpy_scalar (a, b):

    a = np.array([])
    b = np.array([])
    s = a.dot(b)

    result = s
    return result

в чем проблема? выдает Wrong answer


Ответы (1 шт):

Автор решения: CrazyElf

Вы ведь итерируетесь не по индексам, а по самим элементам. Их и нужно перемножать. И непонятно ещё зачем вы заменяете аргументы пустыми массивами. Я исправил:

import numpy as np

def no_numpy_scalar(a, b):
    s = 0
    for x, y in zip(a, b):
        s += x * y
    return s

def numpy_scalar (a, b):
    a = np.array(a)
    b = np.array(b)
    return a.dot(b)
→ Ссылка