- Ejecutores
-
Aprender
Aprender Python Ejemplos ejecutables, NumPy, pandas y más Aprender IARedes neuronales, ML y LLM desde cero Aprender C y C++ Punteros, memoria, STL y C++ moderno Aprender C#Fundamentos, POO, LINQ, async y ejercicios de .NET Aprender MatplotlibGráficos de líneas, barras, dispersión y sectores con visualizadores Algoritmos en Python Búsqueda, ordenación, recursión y visualizadores O(n) Algoritmos en C y C++ Compara implementaciones en C y C++ Programación para niños ¡Aprende a programar jugando!
- RetosNuevo
- Para docentesNuevo
- Actualizaciones
- Invítame a un café
K vecinos más cercanos (KNN) clasifica un punto nuevo mirando los k puntos de entrenamiento más cercanos y tomando la etiqueta más común.
- Calcula la distancia euclidiana de
querya cada punto. - Ordena los puntos por distancia; si dos distancias son iguales, va primero el punto con el índice menor.
- Toma los primeros k puntos y cuenta sus etiquetas.
- Devuelve la etiqueta con más votos. Si hay empate, devuelve la etiqueta empatada cuyo punto más cercano aparece primero en el orden.
Implementa knn_predict(points, labels, query, k).
Entrada
points: Los puntos de entrenamiento, cada uno una lista de coordenadas.
labels: La etiqueta de cada punto.
query: El punto a clasificar.
k: Cuántos vecinos votan.
Salida
Devuelve la etiqueta predicha.
Restricciones
1 ≤ k ≤ número de puntos ≤ 1000
1 ≤ dimensiones ≤ 20
-1000 ≤ cada coordenada ≤ 1000
Ejemplos
Ejemplo 1
Entrada:
points = [
[1.0, 1.0],
[2.0, 2.0],
[8.0, 8.0],
[9.0, 9.0]
]
labels = ["A", "A", "B", "B"]
query = [3.0, 3.0]
k = 3
Salida esperada:
"A"
Explicación
Distancias desde (3, 3): (2, 2) ≈ 1.41, (1, 1) ≈ 2.83, (8, 8) ≈ 7.07. Las 3 etiquetas más cercanas son A, A y B, así que la respuesta es A.
Ejemplo 2
Entrada:
points = [
[0.0, 0.0],
[4.0, 0.0],
[0.0, 4.0],
[4.0, 4.0]
]
labels = ["red", "blue", "blue", "red"]
query = [1.0, 1.0]
k = 2
Salida esperada:
"red"
Explicación
El punto más cercano es (0, 0) (red); los dos siguientes, (4, 0) y (0, 4), están a la misma distancia, así que gana el índice menor, (4, 0) (blue). Red y blue tienen un voto cada uno, y el punto de red apareció primero, así que la respuesta es red.
Referencias
-
Ejemplo 1 Sin ejecutarEntrada:
points = [ [1.0, 1.0], [2.0, 2.0], [8.0, 8.0], [9.0, 9.0] ] labels = ["A", "A", "B", "B"] query = [3.0, 3.0] k = 3Salida esperada:"A"Tu salida -
Ejemplo 2 Sin ejecutarEntrada:
points = [ [0.0, 0.0], [4.0, 0.0], [0.0, 4.0], [4.0, 4.0] ] labels = ["red", "blue", "blue", "red"] query = [1.0, 1.0] k = 2Salida esperada:"red"Tu salida
5 pruebas ocultas también se ejecutan al enviar. Si tu código falla alguna, verás esa prueba. Resuelve el reto para verlas todas.
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 ejecuciones totales (611 este mes)
Practica Swift 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 online de Swift
El CodeUtility Swift Executor te permite escribir y ejecutar código Swift directamente en tu navegador - sin necesidad de Xcode, SDK ni configuración de macOS. Ejecuta compiladores reales de Swift en sandboxes aislados para ofrecer un comportamiento nativo y preciso de Swift.
Esta herramienta admite varias versiones de Swift - 5.7, 5.9 y la más reciente - lo que te da la flexibilidad de explorar nuevas funcionalidades del lenguaje y mantener la compatibilidad con bases de código Swift más antiguas.
Es perfecta para desarrolladores que estén aprendiendo la sintaxis de Swift, probando algoritmos o experimentando con código para iOS, macOS y Swift del lado del servidor sin necesidad de instalar herramientas locales o simuladores.
Cada fragmento se ejecuta de forma segura en un entorno de Swift basado en contenedores, garantizando mensajes reales del compilador y una ejecución segura del código.
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.
💡 Guía básica de Swift para principiantes
1. Declarar variables y constantes
Usa var para variables y let para constantes en Swift.
var age = 30
let pi = 3.14159
var name = "Alice"
let isActive = true
// Las constantes no se pueden reasignar
// pi = 3.14 // ❌ Error
2. Condicionales (if / switch)
Usa if, else if, else para la lógica, y switch para múltiples ramas.
let number = 2
if number == 1 {
print("Uno")
} else if number == 2 {
print("Dos")
} else {
print("Otro")
}
switch number {
case 1:
print("Uno")
case 2:
print("Dos")
default:
print("Otro")
}
3. Bucles
Swift admite los bucles for-in, while y repeat-while.
for i in 0..<3 {
print(i)
}
var n = 3
while n > 0 {
print(n)
n -= 1
}
4. Arrays
Los arrays almacenan colecciones ordenadas de valores.
var numbers = [10, 20, 30]
print(numbers[1])
5. Manipulación de arrays
Usa métodos de array como append y removeLast.
var nums = [1, 2, 3]
nums.append(4)
nums.removeLast()
for n in nums {
print(n)
}
6. Entrada/salida por consola
Usa print() para la salida. La entrada requiere trabajo adicional en Swift Playgrounds o Xcode.
let name = "Alice"
print("Hola, \(name)")
7. Funciones
Define funciones reutilizables con parámetros y valores de retorno.
func add(a: Int, b: Int) -> Int {
return a + b
}
print(add(a: 3, b: 4))
8. Diccionarios
Los diccionarios almacenan pares clave-valor.
var ages = ["Alice": 30]
print(ages["Alice"] ?? 0)
9. Manejo de errores
Swift usa do-catch para el manejo de errores.
enum MyError: Error {
case runtimeError(String)
}
do {
throw MyError.runtimeError("Algo salió mal")
} catch let error {
print(error)
}
10. E/S de archivos
Swift usa FileManager o métodos de String para E/S de archivos.
let text = "Hola archivo"
try text.write(toFile: "file.txt", atomically: true, encoding: .utf8)
let content = try String(contentsOfFile: "file.txt")
print(content)
11. Manipulación de cadenas
Usa métodos como count, contains, uppercased(), etc.
let text = "Hola Mundo"
print(text.count)
print(text.contains("Mundo"))
print(text.uppercased())
12. Clases y objetos
Swift admite POO usando class e init.
class Person {
var name: String
init(name: String) {
self.name = name
}
func greet() {
print("Hola, soy \(name)")
}
}
let p = Person(name: "Alice")
p.greet()
13. Opcionales
Swift usa ? y ! para manejar valores opcionales.
var name: String? = "Alice"
print(name ?? "Desconocido")
if let unwrappedName = name {
print(unwrappedName)
}