Zurück zu den Herausforderungen
Einfach 0 gelöst 0% Erfolgsquote

Skalarprodukt zweier Vektoren

Multipliziere zwei Vektoren elementweise und addiere die Ergebnisse, die Kernoperation jedes Neurons.

Das lernst du

  • Vektoren elementweise multiplizieren und summieren
  • Die Kernoperation eines Neurons verstehen
  • Mit Zahlen-Arrays arbeiten

Problem

Jedes Neuron beginnt mit derselben Rechnung: Jede Eingabe wird mit ihrem Gewicht multipliziert, dann wird alles addiert. Das ist das Skalarprodukt zweier Vektoren:

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

Implementiere dot_product(a, b).

Eingabe

a, b: Zwei Zahlenlisten gleicher Länge.

Ausgabe

Gib das Skalarprodukt als Dezimalzahl zurück.

Einschränkungen

1 ≤ Länge von a = Länge von b ≤ 1.000

-1.000 ≤ jeder Wert ≤ 1.000

Beispiele

Beispiel 1
Eingabe:
a = [1.0, 2.0, 3.0]
b = [4.0, 5.0, 6.0]

Erwartete Ausgabe:
expected = 32.0
Eingabe:
std::vector<double> a = {1.0, 2.0, 3.0};
std::vector<double> b = {4.0, 5.0, 6.0};

Erwartete Ausgabe:
double expected = 32.0;
Eingabe:
double[] a = new double[] {1.0, 2.0, 3.0};
double[] b = new double[] {4.0, 5.0, 6.0};

Erwartete Ausgabe:
double expected = 32.0;

Erläuterung

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

Beispiel 2
Eingabe:
a = [0.5, -1.5]
b = [2.0, 4.0]

Erwartete Ausgabe:
expected = -5.0
Eingabe:
std::vector<double> a = {0.5, -1.5};
std::vector<double> b = {2.0, 4.0};

Erwartete Ausgabe:
double expected = -5.0;
Eingabe:
double[] a = new double[] {0.5, -1.5};
double[] b = new double[] {2.0, 4.0};

Erwartete Ausgabe:
double expected = -5.0;

Erläuterung

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

So gehst du vor

Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.

Hinweis 1

Multipliziere passende Positionen aus den beiden Listen und fasse die Ergebnisse zu einer Summe zusammen.

Hinweis 2

Ein einziger Durchlauf reicht, weil jedes Paar unabhängig zum Endwert beiträgt.

Hinweis 3

Stelle sicher, dass die Listen gleich lang sind, und verwende für den Akkumulator einen Zahlentyp, der bei Bedarf Dezimalstellen erhält.

Erwartete Komplexität

Zeit O(n), zusätzlicher Speicher O(1)

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.