Problem
Ein künstliches Neuron multipliziert jede Eingabe mit einem Gewicht, addiert einen Bias und leitet das Ergebnis durch eine Aktivierungsfunktion:
z = x₁×w₁ + x₂×w₂ + … + xₙ×wₙ + bias
Ausgabe = sigmoid(z) = 1 / (1 + e^(-z))
Implementiere neuron_output(inputs, weights, bias).
Eingabe
inputs: Die Eingabewerte.
weights: Ein Gewicht pro Eingabe (gleiche Länge wie inputs).
bias: Der Bias des Neurons.
Ausgabe
Gib die Ausgabe des Neurons zurück, eine Dezimalzahl zwischen 0 und 1.
Einschränkungen
1 ≤ Länge von inputs = Länge von weights ≤ 100
-10 ≤ jede Eingabe, jedes Gewicht und der Bias ≤ 10
Beispiele
Eingabe:
bias = 0.5
inputs = [1.0, 2.0, 3.0]
weights = [0.2, 0.4, 0.6]
Erwartete Ausgabe:
expected = 0.964429
Eingabe:
double bias = 0.5;
std::vector<double> inputs = {1.0, 2.0, 3.0};
std::vector<double> weights = {0.2, 0.4, 0.6};
Erwartete Ausgabe:
double expected = 0.964429;
Eingabe:
double bias = 0.5;
double[] inputs = new double[] {1.0, 2.0, 3.0};
double[] weights = new double[] {0.2, 0.4, 0.6};
Erwartete Ausgabe:
double expected = 0.964429;
Erläuterung
z = 1×0.2 + 2×0.4 + 3×0.6 + 0.5 = 3.3, und sigmoid(3.3) ≈ 0.964429.
Eingabe:
bias = 0.0
inputs = [0.5, -1.0]
weights = [2.0, 1.0]
Erwartete Ausgabe:
expected = 0.5
Eingabe:
double bias = 0.0;
std::vector<double> inputs = {0.5, -1.0};
std::vector<double> weights = {2.0, 1.0};
Erwartete Ausgabe:
double expected = 0.5;
Eingabe:
double bias = 0.0;
double[] inputs = new double[] {0.5, -1.0};
double[] weights = new double[] {2.0, 1.0};
Erwartete Ausgabe:
double expected = 0.5;
Erläuterung
z = 0.5×2 + (-1)×1 + 0 = 0, und sigmoid(0) = 0.5: Das Neuron ist genau unentschieden.
So gehst du vor
Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.
Hinweis 1
Das ist nur eine gewichtete Summe der Eingaben plus Bias, gefolgt von einer sigmoid.
Hinweis 2
Paare jede Eingabe mit dem passenden Gewicht und summiere die Produkte auf, bevor du den Bias addierst.
Hinweis 3
Achte darauf, dass der finale Output durch sigmoid läuft und nicht die rohe Summe zurückgegeben wird.
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.