0
respostas

Produto escalar sem usar a biblioteca numpy (python)

Olá, eu estou tentando fazer essa operação sem usar a biblioteca Numpy, coisa que por si só já é uma tragédia.

Eu recebo do usuário dois vetores de tamanhos iguais, e preciso fazer a operação de produto escalar entre eles. Lembrando que produto escalar é a.b = a1.b1 + a2.b2 .... + an.bn

Acho que está faltando alguma coisa que eu não entendi completamente...

Por exemplo, se eu colocar o vetor A como [1, 2, 3] e o vetor B como [3, 2, 1], o resultado da multiplicação entre eles deveria ser vetor C = [3, 4, 3]. Mas do jeito que esse código foi escrito o que eu tenho é: [3, 2, 1, 6, 4, 2, 9, 6, 3] Como eu não estou conseguindo nem multiplicar os elementos dos vetores certo, não faz nem sentido tentar somar os elementos do vetor C, para obter o produto final. Segue o código:

vetorA = []
vetorB = []

numA = int(input('Digite o tamanho do vetor do A: '))
while len(vetorA) < numA:
    vetorA.append(int(input('Digite um numero para preencher o vetor A: ')))

numB = int(input('Digite o tamanho do vetor do B: '))
while len(vetorB) < numB:
    vetorB.append(int(input('Digite um numero para preencher o vetor B: ')))

if len(vetorA) == len(vetorB):
    vetorC = []
    for itemA in vetorA:
        for itemB in vetorB:
            new = itemA * itemB
            vetorC.append(new)
    print(vetorC)