- Ausführende
-
Lernen
Python-Lernbereich Ausführbare Beispiele, NumPy, pandas und mehr C/C++-Lernbereich Zeiger, Speicher, STL und modernes C++ C#-LernbereichC#-Grundlagen, OOP, LINQ, Async und .NET-Übungen Python-Algorithmen Suche, Sortierung, Rekursion und Visualisierungen O(n) C/C++-Algorithmen Implementierungen in C und C++ vergleichen
- Aufgaben
XOR (exklusives Oder) ist das klassische Problem, das ein einzelnes Neuron nicht lösen kann, ein Netz mit einer verborgenen Schicht aber schon. Trainiere ein Netz mit 2 Eingaben, 2 verborgenen Neuronen und 1 Ausgabe, alle mit Sigmoid (σ(z) = 1 / (1 + e^(-z))), mit dem Verlust L = (y - target)².
Die Trainingsdaten, in jeder Epoche immer in dieser Reihenfolge verwendet:
| Eingabe | target |
|---|---|
| [0, 0] | 0 |
| [0, 1] | 1 |
| [1, 0] | 1 |
| [1, 1] | 0 |
Für jedes Beispiel:
- Vorwärts: a_j = σ(x₁ × hidden_weights[j][0] + x₂ × hidden_weights[j][1] + hidden_biases[j]), y = σ(a₁ × output_weights[0] + a₂ × output_weights[1] + output_bias)
- delta_out = 2 × (y - target) × y × (1 - y) und delta_j = delta_out × output_weights[j] × a_j × (1 - a_j), mit den Gewichten vor der Aktualisierung für dieses Beispiel
- Aktualisiere jeden Parameter mit der Lernrate lr: output_weights[j] -= lr × delta_out × a_j, output_bias -= lr × delta_out, hidden_weights[j][i] -= lr × delta_j × x_i, hidden_biases[j] -= lr × delta_j
Implementiere train_xor(hidden_weights, hidden_biases, output_weights, output_bias, learning_rate, epochs).
Ausgabe
Gib nach dem Training die Vorhersagen y des Netzes für die Eingaben [0, 0], [0, 1], [1, 0] und [1, 1] in dieser Reihenfolge zurück.
Einschränkungen
0 ≤ epochs ≤ 5.000
0 < learning_rate ≤ 5
-2 ≤ jedes Startgewicht und jeder Start-Bias ≤ 2
Beispiele
Beispiel 1
Eingabe:
epochs = 0
output_bias = 0.0
hidden_biases = [0.0, 0.3]
learning_rate = 1.5
hidden_weights = [
[0.2, 0.8],
[0.9, -0.7]
]
output_weights = [-0.6, 0.4]
Erwartete Ausgabe:
[0.482451, 0.436972, 0.494378, 0.452729]
Erläuterung
Bei 0 Epochen wird nichts trainiert, also ist das Ergebnis einfach der Vorwärtsdurchlauf mit den Startgewichten: etwa [0.482, 0.437, 0.494, 0.453]. Das untrainierte Netz gibt jeder Eingabe fast dieselbe Antwort.
Beispiel 2
Eingabe:
epochs = 2000
output_bias = 0.0
hidden_biases = [0.0, 0.3]
learning_rate = 1.5
hidden_weights = [
[0.2, 0.8],
[0.9, -0.7]
]
output_weights = [-0.6, 0.4]
Erwartete Ausgabe:
[0.015727, 0.982119, 0.985515, 0.013682]
Erläuterung
Nach 2.000 Epochen liegen die Vorhersagen bei etwa [0.016, 0.982, 0.986, 0.014]: niedrig für [0, 0] und [1, 1], hoch für [0, 1] und [1, 0]. Das Netz hat XOR gelernt.
Referenzen
-
Beispiel 1 Nicht ausgeführtEingabe:
epochs = 0 output_bias = 0.0 hidden_biases = [0.0, 0.3] learning_rate = 1.5 hidden_weights = [ [0.2, 0.8], [0.9, -0.7] ] output_weights = [-0.6, 0.4]Erwartete Ausgabe:[0.482451, 0.436972, 0.494378, 0.452729]Deine Ausgabe -
Beispiel 2 Nicht ausgeführtEingabe:
epochs = 2000 output_bias = 0.0 hidden_biases = [0.0, 0.3] learning_rate = 1.5 hidden_weights = [ [0.2, 0.8], [0.9, -0.7] ] output_weights = [-0.6, 0.4]Erwartete Ausgabe:[0.015727, 0.982119, 0.985515, 0.013682]Deine Ausgabe
4 versteckte Tests werden beim Einreichen ebenfalls ausgeführt.
Online-C#-Compiler und -Debugger
Schreibe, kompiliere, starte und debugge C# online. Nutze Haltepunkte, Einzelschritte und Objektinspektion in einer IDE mit mehreren Dateien – ohne Visual Studio.
🚀 350,747 Gesamt-Ausführungen (1 diesen Monat)
Übe C# 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 C#-/.NET-Online-Executor
Der CodeUtility C# Executor ermöglicht es dir, echten C#‑Code direkt im Browser zu schreiben und auszuführen - keine Installation, kein Visual-Studio-Setup und kein .NET SDK erforderlich. Er wird von einer sicheren Sandbox betrieben, die die .NET-Laufzeit und moderne C#‑Sprachversionen unterstützt, einschließlich C# 9 und neuer.
Dieses Tool verwendet unter der Haube dotnet-script, um deinen Code mit echtem .NET‑Verhalten zu kompilieren und auszuführen. So kannst du sowohl mit grundlegenden als auch mit fortgeschrittenen C#‑Funktionen wie LINQ, async/await, Pattern Matching und Generics experimentieren.
Du kannst einfache Skripte, Funktionen und Logikabläufe testen oder Konzepte wie Klassen, Strukturen, Vererbung und Schnittstellen erkunden - alles in einer sauberen, ablenkungsfreien Programmierumgebung.
Egal, ob du C# lernst, Algorithmen testest oder mit .NET‑Features experimentierst: Der CodeUtility C# Executor bietet dir eine schnelle, sichere und zuverlässige Möglichkeit, C#‑Code sofort in jedem Browser 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.
💡 C#‑Grundlagen & Beispiele, die du oben ausprobieren kannst
1. Variablen und Konstanten deklarieren
C# verwendet streng typisierte Variablendeklarationen. Verwende const für Compile‑Time‑Konstanten und readonly für Laufzeitkonstanten.
int age = 30;
double pi = 3.14159;
char grade = 'A';
string name = "Alice";
bool isActive = true;
// Konstanten
const int MaxUsers = 100;
const string Company = "CodeUtility";
2. Bedingungen (if / switch)
Verwende if, else if und switch für den Kontrollfluss.
int x = 2;
if (x == 1)
{
Console.WriteLine("Eins");
}
else if (x == 2)
{
Console.WriteLine("Zwei");
}
else
{
Console.WriteLine("Sonstiges");
}
switch (x)
{
case 1:
Console.WriteLine("Eins");
break;
case 2:
Console.WriteLine("Zwei");
break;
default:
Console.WriteLine("Sonstiges");
break;
}
3. Schleifen
C# unterstützt for-, while- und foreach-Schleifen.
for (int i = 0; i < 3; i++)
{
Console.WriteLine(i);
}
int n = 3;
while (n > 0)
{
Console.WriteLine(n);
n--;
}
4. Arrays
Arrays speichern Sammlungen fester Größe von Elementen desselben Typs.
int[] numbers = { 10, 20, 30 };
Console.WriteLine(numbers[1]);
5. Listen bearbeiten
Verwende List<T> für dynamische Sammlungen.
List<int> nums = new List<int> { 1, 2, 3 };
nums.Add(4);
nums.Remove(2);
foreach (int n in nums)
{
Console.Write(n + " ");
}
6. Konsolen-Ein-/Ausgabe
Verwende Console.WriteLine und Console.ReadLine für einfache Ein-/Ausgabe.
Console.Write("Gib deinen Namen ein: ");
string name = Console.ReadLine();
Console.WriteLine($"Hallo, {name}!");
7. Funktionen
Definiere Methoden mit Rückgabetyp, Namen und Parametern.
int Add(int a, int b)
{
return a + b;
}
Console.WriteLine(Add(3, 4));
8. Wörterbücher
Dictionary<TKey, TValue> speichert Schlüssel‑Wert‑Paare.
Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Alice"] = 30;
Console.WriteLine(ages["Alice"]);
9. Ausnahmebehandlung
Behandle Laufzeitfehler mit try, catch und finally.
try
{
throw new Exception("Etwas ist schiefgelaufen");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
10. Datei-Ein-/Ausgabe
Verwende File und StreamReader/StreamWriter für Dateioperationen.
File.WriteAllText("file.txt", "Hallo Datei");
string text = File.ReadAllText("file.txt");
Console.WriteLine(text);
11. String‑Manipulation
C#‑Strings unterstützen Methoden wie Length, Substring, Contains.
string message = "Hallo Welt";
Console.WriteLine(message.Length);
Console.WriteLine(message.Substring(0, 5));
Console.WriteLine(message.Contains("World"));
12. Klassen & Objekte
C# unterstützt objektorientierte Programmierung mit Klassen und Objekten.
class Person
{
public string Name;
public Person(string name) => Name = name;
public void Greet() => Console.WriteLine($"Hi, ich bin {Name}");
}
Person p = new Person("Alice");
p.Greet();