- Ejecutores
-
Aprender
Centro de aprendizaje de Python Ejemplos ejecutables, NumPy, pandas y más Centro de aprendizaje de C y C++ Punteros, memoria, STL y C++ moderno Centro de aprendizaje de C#Fundamentos, POO, LINQ, async y ejercicios de .NET Algoritmos en Python Búsqueda, ordenación, recursión y visualizadores O(n) Algoritmos en C y C++ Compara implementaciones en C y C++
- Retos
Los modelos de lenguaje eligen el siguiente token a partir de una distribución de probabilidad. Dos ajustes le dan forma:
- 'Top-k: conserva solo los k tokens con los logits más altos (con logits iguales, el índice menor queda por delante).'
- 'Temperatura T: divide los logits conservados entre T antes del softmax. Una T baja hace la elección más predecible y una T alta, más aleatoria.'
Para que el muestreo se pueda probar, el número aleatorio se proporciona:
- Conserva los tokens del top-k y lístalos por su índice original (ascendente).
- Calcula softmax(logit / T) sobre los tokens conservados (resta el mayor antes de calcular e^x).
- Recorre la lista sumando probabilidades; devuelve el índice del primer token en el que el total acumulado supera
random_value. Si eso nunca ocurre (redondeo), devuelve el último token conservado.
Con k = 1 esto es decodificación voraz: siempre el token más probable.
Implementa sample_token(logits, temperature, k, random_value).
Entrada
logits: Una puntuación por token del vocabulario.
temperature: T, mayor que 0.
k: Cuántos de los mejores tokens conservar.
random_value: Un número aleatorio en [0, 1).
Salida
Devuelve el índice del token elegido.
Restricciones
1 ≤ k ≤ número de logits ≤ 1.000
0 < temperature ≤ 100, 0 ≤ random_value < 1
-100 ≤ cada logit ≤ 100
Ejemplos
Ejemplo 1
Entrada:
k = 1
logits = [1.0, 3.0, 2.0, 0.5]
temperature = 1.0
random_value = 0.99
Salida esperada:
1
Explicación
k = 1 conserva solo el logit más alto, 3.0 en el índice 1. Su probabilidad es 1, así que se elige sin importar el número aleatorio: decodificación voraz.
Ejemplo 2
Entrada:
k = 2
logits = [2.0, 1.0, 0.0]
temperature = 1.0
random_value = 0.8
Salida esperada:
1
Explicación
El top-2 conserva los índices 0 y 1 (logits 2 y 1). El softmax da aproximadamente 0.731 y 0.269. El total acumulado es 0.731 después del índice 0 (no supera 0.8) y 1 después del índice 1, así que se elige el índice 1.
Referencias
-
Ejemplo 1 Sin ejecutarEntrada:
k = 1 logits = [1.0, 3.0, 2.0, 0.5] temperature = 1.0 random_value = 0.99Salida esperada:1Tu salida -
Ejemplo 2 Sin ejecutarEntrada:
k = 2 logits = [2.0, 1.0, 0.0] temperature = 1.0 random_value = 0.8Salida esperada:1Tu salida
4 pruebas ocultas también se ejecutan al enviar.
Compilador y depurador C# online
Escribe, compila, ejecuta y depura C# online. Usa puntos de interrupción, ejecución paso a paso e inspección de objetos en una IDE con varios archivos, sin Visual Studio.
🚀 350,747 ejecuciones totales (1 este mes)
Practica C# con desafíos de código
Resuelve problemas prácticos en este editor: ejecuta las pruebas de ejemplo, envía tu solución y recibe una revisión de código por IA.
🔷 Acerca de este ejecutor en línea de C# / .NET
El CodeUtility C# Executor te permite escribir y ejecutar código C# real directamente en tu navegador - sin instalación, configuración de Visual Studio ni .NET SDK. Funciona con un entorno aislado seguro que admite el runtime de .NET y versiones modernas del lenguaje C#, incluyendo C# 9 y posteriores.
Esta herramienta usa dotnet-script bajo el capó para compilar y ejecutar tu código con comportamiento real de .NET, lo que te permite experimentar tanto con características básicas como avanzadas de C#, como LINQ, async/await, pattern matching y genéricos.
Puedes probar scripts simples, funciones y flujos lógicos, o explorar conceptos como clases, structs, herencia e interfaces - todo en un entorno de código limpio y sin distracciones.
Ya sea que estés aprendiendo C#, probando algoritmos o experimentando con características de .NET, el CodeUtility C# Executor te ofrece una forma rápida, segura y confiable de ejecutar código C# al instante desde cualquier navegador.
Más que un ejecutor de código
Utiliza un editor de varios archivos, un terminal de ejecución aislado, bibliotecas específicas del entorno, espacios de trabajo persistentes, opciones para compartir y colaboración en tiempo real desde el mismo ejecutor.
¿Cómo se utiliza este ejecutor?
Elige un entorno de ejecución, abre o crea un archivo, escribe el código y selecciona Ejecutar. El resultado aparece en el terminal; los usuarios que han iniciado sesión pueden conservar archivos en un espacio de trabajo, instalar bibliotecas y colaborar mediante elementos compartidos.
- Selecciona una versión y edita el archivo actual o abre otro archivo del espacio de trabajo.
- Ejecuta el código, introduce datos en el terminal cuando se soliciten y revisa el historial de ejecuciones guardado.
- Utiliza bibliotecas, herramientas del espacio de trabajo, opciones para compartir y el chat cuando la tarea requiera más de un fragmento.
💡 Fundamentos de C# y ejemplos que puedes probar arriba
1. Declarar variables y constantes
C# usa declaraciones de variables fuertemente tipadas. Usa const para constantes en tiempo de compilación y readonly para constantes en tiempo de ejecución.
int age = 30;
double pi = 3.14159;
char grade = 'A';
string name = "Alice";
bool isActive = true;
// Constantes
const int MaxUsers = 100;
const string Company = "CodeUtility";
2. Condicionales (if / switch)
Usa if, else if y switch para el control de flujo.
int x = 2;
if (x == 1)
{
Console.WriteLine("Uno");
}
else if (x == 2)
{
Console.WriteLine("Dos");
}
else
{
Console.WriteLine("Otro");
}
switch (x)
{
case 1:
Console.WriteLine("Uno");
break;
case 2:
Console.WriteLine("Dos");
break;
default:
Console.WriteLine("Otro");
break;
}
3. Bucles
C# admite bucles for, while y foreach.
for (int i = 0; i < 3; i++)
{
Console.WriteLine(i);
}
int n = 3;
while (n > 0)
{
Console.WriteLine(n);
n--;
}
4. Arreglos
Los arreglos almacenan colecciones de tamaño fijo de elementos del mismo tipo.
int[] numbers = { 10, 20, 30 };
Console.WriteLine(numbers[1]);
5. Manipulación de listas
Usa List<T> para colecciones dinámicas.
List<int> nums = new List<int> { 1, 2, 3 };
nums.Add(4);
nums.Remove(2);
foreach (int n in nums)
{
Console.Write(n + " ");
}
6. Entrada/Salida por consola
Usa Console.WriteLine y Console.ReadLine para E/S básica.
Console.Write("Ingresa tu nombre: ");
string name = Console.ReadLine();
Console.WriteLine($"¡Hola, {name}!");
7. Funciones
Define métodos usando un tipo de retorno, nombre y parámetros.
int Add(int a, int b)
{
return a + b;
}
Console.WriteLine(Add(3, 4));
8. Diccionarios
Dictionary<TKey, TValue> almacena pares clave-valor.
Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Alice"] = 30;
Console.WriteLine(ages["Alice"]);
9. Manejo de excepciones
Maneja errores en tiempo de ejecución usando try, catch y finally.
try
{
throw new Exception("Algo salió mal");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
10. E/S de archivos
Usa File y StreamReader/StreamWriter para operaciones con archivos.
File.WriteAllText("file.txt", "Hola archivo");
string text = File.ReadAllText("file.txt");
Console.WriteLine(text);
11. Manipulación de cadenas
Las cadenas de C# admiten métodos como Length, Substring, Contains.
string message = "Hola Mundo";
Console.WriteLine(message.Length);
Console.WriteLine(message.Substring(0, 5));
Console.WriteLine(message.Contains("Mundo"));
12. Clases y objetos
C# admite la programación orientada a objetos mediante clases y objetos.
class Person
{
public string Name;
public Person(string name) => Name = name;
public void Greet() => Console.WriteLine($"Hola, soy {Name}");
}
Person p = new Person("Alice");
p.Greet();