- Esecutori
-
Impara
Impara Python Esempi eseguibili, NumPy, pandas e altro Impara l'IAReti neurali, ML e LLM da zero Impara C e C++ Puntatori, memoria, STL e C++ moderno Impara C#Fondamenti, OOP, LINQ, async ed esercizi .NET Impara MatplotlibGrafici a linee, barre, dispersione e torta con visualizzatori Algoritmi Python Ricerca, ordinamento, ricorsione e visualizzazioni O(n) Algoritmi C e C++ Confronta le implementazioni in C e C++ Programmazione per bambini Impara a programmare giocando!
- SfideNuovo
- Per docentiNuovo
- Aggiornamenti
- Offrimi un caffè
I modelli linguistici scelgono il token successivo da una distribuzione di probabilità. Due impostazioni le danno forma:
- 'Top-k: tieni solo i k token con i logit più alti (a parità di logit, l''indice minore viene prima).'
- 'Temperatura T: dividi i logit tenuti per T prima del softmax. Una T bassa rende la scelta più prevedibile, una T alta più casuale.'
Per rendere il campionamento verificabile, il numero casuale viene fornito:
- Tieni i token del top-k ed elencali per indice originale (crescente).
- Calcola softmax(logit / T) sui token tenuti (sottrai il maggiore prima di calcolare e^x).
- Scorri la lista sommando le probabilità; restituisci l'indice del primo token in cui il totale cumulato supera
random_value. Se non succede mai (arrotondamento), restituisci l'ultimo token tenuto.
Con k = 1 è la decodifica greedy: sempre il token più probabile.
Implementa sample_token(logits, temperature, k, random_value).
Input
logits: Un punteggio per ogni token del vocabolario.
temperature: T, maggiore di 0.
k: Quanti token migliori tenere.
random_value: Un numero casuale in [0, 1).
Output
Restituisci l'indice del token scelto.
Vincoli
1 ≤ k ≤ numero di logit ≤ 1.000
0 < temperature ≤ 100, 0 ≤ random_value < 1
-100 ≤ ogni logit ≤ 100
Esempi
Esempio 1
Input:
logits = [1.0, 3.0, 2.0, 0.5]
temperature = 1.0
k = 1
random_value = 0.99
Output atteso:
1
Spiegazione
k = 1 tiene solo il logit più alto, 3.0 all'indice 1. La sua probabilità è 1, quindi viene scelto qualunque sia il numero casuale: decodifica greedy.
Esempio 2
Input:
logits = [2.0, 1.0, 0.0]
temperature = 1.0
k = 2
random_value = 0.8
Output atteso:
1
Spiegazione
Il top-2 tiene gli indici 0 e 1 (logit 2 e 1). Il softmax dà circa 0.731 e 0.269. Il totale cumulato è 0.731 dopo l'indice 0 (non supera 0.8) e 1 dopo l'indice 1, quindi viene scelto l'indice 1.
Riferimenti
-
Esempio 1 Non eseguitoInput:
logits = [1.0, 3.0, 2.0, 0.5] temperature = 1.0 k = 1 random_value = 0.99Output atteso:1Il tuo output -
Esempio 2 Non eseguitoInput:
logits = [2.0, 1.0, 0.0] temperature = 1.0 k = 2 random_value = 0.8Output atteso:1Il tuo output
4 test nascosti vengono eseguiti anche al momento dell'invio. Se il tuo codice ne fallisce uno, vedrai quel test. Risolvi la sfida per vederli tutti.
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 esecuzioni totali (5,854 questo mese)
Esercitati in Java con le sfide di codice
Risolvi problemi pratici direttamente in questo editor: esegui i test di esempio, invia la soluzione e ricevi una revisione AI del codice.
☕ Informazioni su questo esecutore Java online
Il CodeUtility Java Executor ti consente di scrivere ed eseguire programmi Java direttamente nel browser - senza installazione, configurazione del JDK o IDE. È alimentato da una sandbox sicura che supporta vere versioni del runtime Java 8, 11, 17, 21 e la più recente.
Questo strumento compila ed esegue il codice Java nel cloud usando un vero compilatore javac e un ambiente di runtime Java,
così puoi testare classi, metodi e logica esattamente come si comporterebbero in locale.
Che tu ti stia esercitando con la programmazione orientata agli oggetti, preparando colloqui o testando snippet prima dell'integrazione, CodeUtility Java Executor offre un ambiente veloce e affidabile per eseguire vero codice Java all'istante da qualsiasi dispositivo.
Più di un semplice esecutore di codice
Usa nello stesso esecutore un editor multifile, un terminale di esecuzione isolato, librerie specifiche per il runtime, spazi di lavoro persistenti, condivisione e collaborazione in tempo reale.
Come si usa questo esecutore?
Scegli un runtime, apri o crea un file, scrivi il codice e seleziona Esegui. L’output appare nel terminale; gli utenti che hanno effettuato l’accesso possono conservare i file in uno spazio di lavoro, installare librerie e collaborare tramite le condivisioni.
- Seleziona una versione e modifica il file corrente oppure apri un altro file dello spazio di lavoro.
- Esegui il codice, inserisci i dati nel terminale quando richiesto e consulta la cronologia delle esecuzioni salvate.
- Usa librerie, strumenti dello spazio di lavoro, condivisione e chat quando l’attività richiede più di un frammento di codice.
💡 Nozioni di base su Java ed esempi che puoi provare qui sopra
1. Dichiarazione di variabili e costanti
Java richiede di dichiarare il tipo di ogni variabile. Usa final per le costanti.
int age = 30;
double pi = 3.14159;
char grade = 'A';
String name = "Alice";
boolean isActive = true;
// Costanti
final int MAX_USERS = 100;
final String COMPANY = "CodeUtility";
2. Condizionali (if / switch)
Usa if, else if e switch per il flusso di controllo.
int x = 2;
if (x == 1) {
System.out.println("Uno");
} else if (x == 2) {
System.out.println("Due");
} else {
System.out.println("Altro");
}
switch (x) {
case 1:
System.out.println("Uno");
break;
case 2:
System.out.println("Due");
break;
default:
System.out.println("Altro");
}
3. Cicli
Usa for, while e do-while per l'iterazione.
for (int i = 0; i < 3; i++) {
System.out.println(i);
}
int n = 3;
while (n > 0) {
System.out.println(n);
n--;
}
4. Array
Gli array contengono sequenze a dimensione fissa dello stesso tipo.
int[] numbers = {10, 20, 30};
System.out.println(numbers[1]);
5. Manipolazione di ArrayList
Usa ArrayList per liste di dimensione dinamica.
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. Input/Output da console
Usa Scanner per l'input e System.out per l'output.
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
System.out.print("Inserisci il tuo nome: ");
String name = scanner.nextLine();
System.out.println("Ciao, " + name);
7. Funzioni
Definisci metodi con tipi di ritorno e parametri.
public static int add(int a, int b) {
return a + b;
}
System.out.println(add(3, 4));
8. HashMap
Usa HashMap per l'archiviazione chiave-valore.
import java.util.HashMap;
HashMap<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
System.out.println(ages.get("Alice"));
9. Gestione delle eccezioni
Usa try e catch per gestire le eccezioni a runtime.
try {
throw new Exception("Qualcosa è andato storto");
} catch (Exception e) {
System.out.println(e.getMessage());
}
10. I/O su file
Usa Files e Paths da java.nio.file per la gestione dei file.
import java.nio.file.*;
import java.io.IOException;
Files.writeString(Paths.get("file.txt"), "Ciao file");
String content = Files.readString(Paths.get("file.txt"));
System.out.println(content);
11. Manipolazione di stringhe
Le stringhe in Java supportano molti metodi come length(), substring() e contains().
String text = "Hello World";
System.out.println(text.length());
System.out.println(text.substring(0, 5));
System.out.println(text.contains("World"));
12. Classi e oggetti
Java supporta la programmazione orientata agli oggetti usando classi e istanze.
class Person {
String name;
Person(String name) {
this.name = name;
}
void greet() {
System.out.println("Ciao, sono " + name);
}
}
Person p = new Person("Alice");
p.greet();