- 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.
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();