Retour aux défis
Facile 0 résolus 0 % de réussite

Produit scalaire de deux vecteurs

Multipliez deux vecteurs élément par élément et additionnez les résultats, l'opération de base de tout neurone.

Ce que vous allez apprendre

  • Multiplier des vecteurs élément par élément et additionner
  • Comprendre l'opération au cœur d'un neurone
  • Travailler avec des tableaux de nombres

Problème

Chaque neurone commence par le même calcul : multiplier chaque entrée par son poids, puis tout additionner. C'est le produit scalaire de deux vecteurs :

a · b = a₁×b₁ + a₂×b₂ + … + aₙ×bₙ

Implémentez dot_product(a, b).

Entrée

a, b : deux listes de nombres de même longueur.

Sortie

Renvoyez le produit scalaire sous forme de nombre décimal.

Contraintes

1 ≤ longueur de a = longueur de b ≤ 1 000

-1 000 ≤ chaque valeur ≤ 1 000

Exemples

Exemple 1
Entrée :
a = [1.0, 2.0, 3.0]
b = [4.0, 5.0, 6.0]

Sortie attendue :
expected = 32.0
Entrée :
std::vector<double> a = {1.0, 2.0, 3.0};
std::vector<double> b = {4.0, 5.0, 6.0};

Sortie attendue :
double expected = 32.0;
Entrée :
double[] a = new double[] {1.0, 2.0, 3.0};
double[] b = new double[] {4.0, 5.0, 6.0};

Sortie attendue :
double expected = 32.0;

Explication

1×4 + 2×5 + 3×6 = 4 + 10 + 18 = 32.

Exemple 2
Entrée :
a = [0.5, -1.5]
b = [2.0, 4.0]

Sortie attendue :
expected = -5.0
Entrée :
std::vector<double> a = {0.5, -1.5};
std::vector<double> b = {2.0, 4.0};

Sortie attendue :
double expected = -5.0;
Entrée :
double[] a = new double[] {0.5, -1.5};
double[] b = new double[] {2.0, 4.0};

Sortie attendue :
double expected = -5.0;

Explication

0.5×2 + (-1.5)×4 = 1 - 6 = -5.

Comment l'aborder

Essayez d'abord seul, puis ouvrez les indices un par un.

Indice 1

Multiplie les positions correspondantes des deux listes et combine les résultats en un total.

Indice 2

Un seul passage suffit, car chaque paire contribue indépendamment à la valeur finale.

Indice 3

Assure-toi que les listes ont la même longueur, et garde l’accumulateur dans un type numérique qui préserve les décimales si nécessaire.

Complexité attendue

temps O(n), espace supplémentaire O(1)

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.