- 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
Sprachmodelle wählen das nächste Token aus einer Wahrscheinlichkeitsverteilung. Zwei Einstellungen formen sie:
- 'Top-k: Behalte nur die k Tokens mit den höchsten Logits (bei gleichen Logits rangiert der kleinere Index höher).'
- 'Temperatur T: Teile die behaltenen Logits vor dem Softmax durch T. Ein niedriges T macht die Wahl vorhersehbarer, ein hohes T zufälliger.'
Damit das Sampling testbar ist, wird die Zufallszahl vorgegeben:
- Behalte die Top-k-Tokens und liste sie nach ihrem ursprünglichen Index (aufsteigend).
- Berechne softmax(logit / T) über die behaltenen Tokens (ziehe den größten Wert ab, bevor du e^x berechnest).
- Gehe die Liste durch und addiere die Wahrscheinlichkeiten; gib den Index des ersten Tokens zurück, bei dem die laufende Summe größer als
random_valuewird. Passiert das nie (Rundung), gib das letzte behaltene Token zurück.
Mit k = 1 ist das Greedy-Decoding: immer das wahrscheinlichste Token.
Implementiere sample_token(logits, temperature, k, random_value).
Eingabe
logits: Ein Score pro Token im Vokabular.
temperature: T, größer als 0.
k: Wie viele Top-Tokens behalten werden.
random_value: Eine Zufallszahl in [0, 1).
Ausgabe
Gib den Index des gewählten Tokens zurück.
Einschränkungen
1 ≤ k ≤ Anzahl der Logits ≤ 1.000
0 < temperature ≤ 100, 0 ≤ random_value < 1
-100 ≤ jeder Logit ≤ 100
Beispiele
Beispiel 1
Eingabe:
logits = [1.0, 3.0, 2.0, 0.5]
temperature = 1.0
k = 1
random_value = 0.99
Erwartete Ausgabe:
1
Erläuterung
k = 1 behält nur den höchsten Logit, 3.0 bei Index 1. Seine Wahrscheinlichkeit ist 1, also wird er unabhängig von der Zufallszahl gewählt: Greedy-Decoding.
Beispiel 2
Eingabe:
logits = [2.0, 1.0, 0.0]
temperature = 1.0
k = 2
random_value = 0.8
Erwartete Ausgabe:
1
Erläuterung
Top-2 behält die Indizes 0 und 1 (Logits 2 und 1). Softmax ergibt etwa 0.731 und 0.269. Die laufende Summe ist nach Index 0 0.731 (nicht über 0.8) und nach Index 1 gleich 1, also wird Index 1 gewählt.
Referenzen
-
Beispiel 1 Nicht ausgeführtEingabe:
logits = [1.0, 3.0, 2.0, 0.5] temperature = 1.0 k = 1 random_value = 0.99Erwartete Ausgabe:1Deine Ausgabe -
Beispiel 2 Nicht ausgeführtEingabe:
logits = [2.0, 1.0, 0.0] temperature = 1.0 k = 2 random_value = 0.8Erwartete Ausgabe:1Deine 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.
Run Swift Online
Write, run, and debug Swift code online using a command-line Swift environment. Manage multiple files, save your workspace, and share code without installing Xcode.
🚀 19,043 Gesamt-Ausführungen (611 diesen Monat)
Übe Swift 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 Swift Online-Executor
Der CodeUtility Swift Executor ermöglicht es dir, Swift-Code direkt im Browser zu schreiben und auszuführen - ganz ohne Xcode, SDK oder macOS-Setup. Er verwendet echte Swift-Compiler in isolierten Sandboxes, um präzises, natives Swift-Verhalten zu liefern.
Dieses Tool unterstützt mehrere Swift-Versionen - 5.7, 5.9 und die neueste Version - und gibt dir die Flexibilität, neue Sprachfeatures zu erkunden und die Kompatibilität mit älteren Swift-Codebasen zu wahren.
Ideal für Entwickler, die Swift-Syntax lernen, Algorithmen testen oder mit Code für iOS, macOS und serverseitiges Swift experimentieren - ohne lokale Tools oder Simulatoren installieren zu müssen.
Jedes Snippet läuft sicher in einer containerisierten Swift-Umgebung und sorgt für echtes Compiler-Feedback und eine sichere Codeausführung.
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.
💡 Swift-Grundlagen für Einsteiger
1. Variablen und Konstanten deklarieren
Verwende var für Variablen und let für Konstanten in Swift.
var age = 30
let pi = 3.14159
var name = "Alice"
let isActive = true
// Konstanten können nicht neu zugewiesen werden
// pi = 3.14 // ❌ Fehler
2. Bedingungen (if / switch)
Verwende if, else if, else für Logik und switch für mehrere Zweige.
let number = 2
if number == 1 {
print("Eins")
} else if number == 2 {
print("Zwei")
} else {
print("Sonstiges")
}
switch number {
case 1:
print("Eins")
case 2:
print("Zwei")
default:
print("Sonstiges")
}
3. Schleifen
Swift unterstützt for-in-, while- und repeat-while-Schleifen.
for i in 0..<3 {
print(i)
}
var n = 3
while n > 0 {
print(n)
n -= 1
}
4. Arrays
Arrays speichern geordnete Sammlungen von Werten.
var numbers = [10, 20, 30]
print(numbers[1])
5. Array-Manipulation
Verwende Array-Methoden wie append und removeLast.
var nums = [1, 2, 3]
nums.append(4)
nums.removeLast()
for n in nums {
print(n)
}
6. Konsolen-Ein-/Ausgabe
Verwende print() für Ausgaben. Eingaben erfordern zusätzliche Arbeit in Swift Playgrounds oder Xcode.
let name = "Alice"
print("Hallo, \(name)")
7. Funktionen
Definiere wiederverwendbare Funktionen mit Parametern und Rückgabewerten.
func add(a: Int, b: Int) -> Int {
return a + b
}
print(add(a: 3, b: 4))
8. Dictionaries
Dictionaries speichern Schlüssel-Wert-Paare.
var ages = ["Alice": 30]
print(ages["Alice"] ?? 0)
9. Fehlerbehandlung
Swift verwendet do-catch für die Fehlerbehandlung.
enum MyError: Error {
case runtimeError(String)
}
do {
throw MyError.runtimeError("Etwas ist schiefgelaufen")
} catch let error {
print(error)
}
10. Datei-Ein-/Ausgabe
Swift verwendet FileManager oder String-Methoden für Datei-Ein-/Ausgabe.
let text = "Hallo Datei"
try text.write(toFile: "file.txt", atomically: true, encoding: .utf8)
let content = try String(contentsOfFile: "file.txt")
print(content)
11. String-Manipulation
Verwende Methoden wie count, contains, uppercased() usw.
let text = "Hallo Welt"
print(text.count)
print(text.contains("Welt"))
print(text.uppercased())
12. Klassen & Objekte
Swift unterstützt OOP mithilfe von class und init.
class Person {
var name: String
init(name: String) {
self.name = name
}
func greet() {
print("Hi, ich bin \(name)")
}
}
let p = Person(name: "Alice")
p.greet()
13. Optionals
Swift verwendet ? und !, um optionale Werte zu handhaben.
var name: String? = "Alice"
print(name ?? "Unbekannt")
if let unwrappedName = name {
print(unwrappedName)
}