- Ausführende
-
Lernen
Python lernen Ausführbare Beispiele, NumPy, pandas und mehr KI lernenNeuronale Netze, ML und LLMs von Grund auf C/C++ lernen Zeiger, Speicher, STL und modernes C++ C# lernenC#-Grundlagen, OOP, LINQ, Async und .NET-Übungen Matplotlib lernenLinien-, Balken-, Streu- und Kreisdiagramme mit interaktiven Visualisierungen Python-Algorithmen Suche, Sortierung, Rekursion und Visualisierungen O(n) C/C++-Algorithmen Implementierungen in C und C++ vergleichen Programmieren für Kinder Spielend programmieren lernen!
- AufgabenNeu
- Für LehrkräfteNeu
- Aktualisierungen
- Spendier mir einen Kaffee
Gradientenabstieg verbessert die Gewichte Schritt für Schritt, indem er sich gegen den Gradienten bewegt:
w ← w - learning_rate × dL/dw
Trainiere ein Sigmoid-Neuron mit stochastischem Gradientenabstieg. Gehe in jeder Epoche die Beispiele in der angegebenen Reihenfolge durch, und für jedes Beispiel:
- z = sample · weights + bias, y = 1 / (1 + e^(-z))
- delta = 2 × (y - target) × y × (1 - y)
- weights[i] ← weights[i] - learning_rate × delta × sample[i] (für jedes i), dann bias ← bias - learning_rate × delta
Implementiere train_neuron(samples, targets, weights, bias, learning_rate, epochs).
Eingabe
samples: m Trainingsbeispiele mit je n Werten.
targets: Die m korrekten Ausgaben (zwischen 0 und 1).
weights, bias: Die Startgewichte (n Werte) und der Start-Bias.
learning_rate, epochs: Die Schrittweite und wie viele Durchläufe über die Daten.
Ausgabe
Gib die trainierten Gewichte und danach den trainierten Bias zurück (n + 1 Zahlen).
Einschränkungen
1 ≤ m ≤ 50, 1 ≤ n ≤ 10, 1 ≤ epochs ≤ 1.000
0 < learning_rate ≤ 5
-5 ≤ jeder Wert ≤ 5
Beispiele
Beispiel 1
Eingabe:
samples = [
[1.0]
]
targets = [1.0]
weights = [0.0]
bias = 0.0
learning_rate = 1.0
epochs = 1
Erwartete Ausgabe:
[0.25, 0.25]
Erläuterung
y = σ(0) = 0.5, delta = 2 × (0.5 - 1) × 0.25 = -0.25. Gewicht: 0 - 1 × (-0.25) × 1 = 0.25. Bias: 0 - 1 × (-0.25) = 0.25. Ergebnis: [0.25, 0.25].
Beispiel 2
Eingabe:
samples = [
[0.0, 0.0],
[0.0, 1.0],
[1.0, 0.0],
[1.0, 1.0]
]
targets = [0.0, 0.0, 0.0, 1.0]
weights = [0.0, 0.0]
bias = 0.0
learning_rate = 2.0
epochs = 500
Erwartete Ausgabe:
[6.346558, 6.339863, -9.592092]
Erläuterung
Das ist das logische UND-Gatter. Nach 500 Epochen sind beide Gewichte groß und positiv und der Bias stark negativ, sodass nur die Eingabe [1, 1] eine Ausgabe über 0.5 liefert.
Referenzen
-
Beispiel 1 Nicht ausgeführtEingabe:
samples = [ [1.0] ] targets = [1.0] weights = [0.0] bias = 0.0 learning_rate = 1.0 epochs = 1Erwartete Ausgabe:[0.25, 0.25]Deine Ausgabe -
Beispiel 2 Nicht ausgeführtEingabe:
samples = [ [0.0, 0.0], [0.0, 1.0], [1.0, 0.0], [1.0, 1.0] ] targets = [0.0, 0.0, 0.0, 1.0] weights = [0.0, 0.0] bias = 0.0 learning_rate = 2.0 epochs = 500Erwartete Ausgabe:[6.346558, 6.339863, -9.592092]Deine Ausgabe
4 versteckte Tests werden beim Einreichen ebenfalls ausgeführt. Scheitert dein Code an einem, siehst du diesen Test. Löse die Aufgabe, um alle zu sehen.
Online Java Compiler
Write, compile, run, and debug Java code online in a full-featured browser IDE. Work with multiple files, save your workspace, and share or collaborate in real time - no setup required.
🚀 260,408 Gesamt-Ausführungen (5,854 diesen Monat)
Übe Java mit Coding Challenges
Löse praktische Aufgaben direkt im Editor: Führe die Beispieltests aus, reiche ein und erhalte ein KI-Code-Review.
☕ Über diesen Java-Online-Executor
Der CodeUtility Java Executor ermöglicht es dir, Java-Programme direkt in deinem Browser zu schreiben und auszuführen - keine Installation, kein JDK-Setup und keine IDE erforderlich. Er wird von einer sicheren Sandbox betrieben, die echte Java-Laufzeitversionen 8, 11, 17, 21 sowie die neueste unterstützt.
Dieses Tool kompiliert und führt Java-Code in der Cloud aus, mit einem echten javac-Compiler und einer Java-Laufzeitumgebung,
sodass du Klassen, Methoden und Logik genau so testen kannst, wie sie lokal funktionieren würden.
Egal, ob du objektorientierte Programmierung übst, dich auf Interviews vorbereitest oder Snippets vor der Integration testest - der CodeUtility Java Executor bietet eine schnelle und zuverlässige Umgebung, um echten Java-Code sofort von jedem Gerät aus auszuführen.
Mehr als nur ein Code-Runner
Nutzen Sie im selben Executor einen Editor für mehrere Dateien, ein isoliertes Ausführungsterminal, laufzeitspezifische Bibliotheken, persistente Arbeitsbereiche, Freigaben und Zusammenarbeit in Echtzeit.
Wie verwende ich diesen Executor?
Wählen Sie eine Laufzeit aus, öffnen oder erstellen Sie eine Datei, schreiben Sie Ihren Code und wählen Sie Ausführen. Die Ausgabe erscheint im Terminal. Angemeldete Benutzer können Dateien in einem Arbeitsbereich speichern, Bibliotheken installieren und über Freigaben zusammenarbeiten.
- Wählen Sie eine Version aus und bearbeiten Sie die aktuelle Datei oder öffnen Sie eine andere Datei aus dem Arbeitsbereich.
- Führen Sie den Code aus, geben Sie bei Aufforderung Daten im Terminal ein und prüfen Sie den gespeicherten Ausführungsverlauf.
- Nutzen Sie Bibliotheken, Arbeitsbereichswerkzeuge, Freigaben und den Chat, wenn Ihre Aufgabe mehr als ein einzelnes Codefragment erfordert.
💡 Java-Grundlagen & Beispiele, die du oben ausprobieren kannst
1. Variablen und Konstanten deklarieren
In Java musst du den Typ jeder Variablen deklarieren. Verwende final für Konstanten.
int age = 30;
double pi = 3.14159;
char grade = 'A';
String name = "Alice";
boolean isActive = true;
// Konstanten
final int MAX_USERS = 100;
final String COMPANY = "CodeUtility";
2. Bedingungen (if / switch)
Verwende if, else if und switch für den Kontrollfluss.
int x = 2;
if (x == 1) {
System.out.println("Eins");
} else if (x == 2) {
System.out.println("Zwei");
} else {
System.out.println("Sonstiges");
}
switch (x) {
case 1:
System.out.println("Eins");
break;
case 2:
System.out.println("Zwei");
break;
default:
System.out.println("Sonstiges");
}
3. Schleifen
Verwende for, while und do-while für Iterationen.
for (int i = 0; i < 3; i++) {
System.out.println(i);
}
int n = 3;
while (n > 0) {
System.out.println(n);
n--;
}
4. Arrays
Arrays enthalten Sequenzen fester Größe desselben Typs.
int[] numbers = {10, 20, 30};
System.out.println(numbers[1]);
5. ArrayList-Manipulation
Verwende ArrayList für Listen mit dynamischer Größe.
import java.util.ArrayList;
ArrayList<Integer> nums = new ArrayList<>();
nums.add(1);
nums.add(2);
nums.add(3);
nums.remove(Integer.valueOf(2));
for (int num : nums) {
System.out.print(num + " ");
}
6. Konsolen-Ein-/Ausgabe
Verwende Scanner für Eingaben und System.out für Ausgaben.
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
System.out.print("Gib deinen Namen ein: ");
String name = scanner.nextLine();
System.out.println("Hallo, " + name);
7. Funktionen
Definiere Methoden mit Rückgabetypen und Parametern.
public static int add(int a, int b) {
return a + b;
}
System.out.println(add(3, 4));
8. HashMaps
Verwende HashMap für die Speicherung von Schlüssel-Wert-Paaren.
import java.util.HashMap;
HashMap<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
System.out.println(ages.get("Alice"));
9. Ausnahmebehandlung
Verwende try und catch, um Laufzeitausnahmen zu behandeln.
try {
throw new Exception("Etwas ist schiefgelaufen");
} catch (Exception e) {
System.out.println(e.getMessage());
}
10. Datei-Ein-/Ausgabe
Verwende Files und Paths aus java.nio.file für die Dateiverarbeitung.
import java.nio.file.*;
import java.io.IOException;
Files.writeString(Paths.get("file.txt"), "Hallo Datei");
String content = Files.readString(Paths.get("file.txt"));
System.out.println(content);
11. String-Manipulation
Java-Strings unterstützen viele Methoden wie length(), substring() und contains().
String text = "Hallo Welt";
System.out.println(text.length());
System.out.println(text.substring(0, 5));
System.out.println(text.contains("Welt"));
12. Klassen & Objekte
Java unterstützt objektorientierte Programmierung mit Klassen und Instanzen.
class Person {
String name;
Person(String name) {
this.name = name;
}
void greet() {
System.out.println("Hallo, ich bin " + name);
}
}
Person p = new Person("Alice");
p.greet();