Convertidor ternario equilibrado con dígitos -1, 0 y 1
El 20 en ternario equilibrado es 1 −1 1 −1: tres al cubo, menos tres al cuadrado, más tres, menos uno. Escriba cualquier entero, también negativo, y obtenga su forma con dígitos con signo, bien separados entre sí. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- N
- 20
- Ternario balanceado
- 1 -1 1 -1
- Dígitos
- 1, -1, 1, -1
El convertidor de ternario equilibrado expresa un entero en base tres mediante los dígitos menos uno, cero y uno. Introduzca un entero positivo, negativo o igual a cero para obtener una representación legible separada por espacios y una matriz numérica de dígitos. Los espacios permiten distinguir cada -1 sin ambigüedad al copiar el resultado en apuntes, código o cálculos. La conversión es exacta, determinista y se realiza con aritmética entera, por lo que resulta útil para estudiar sistemas de numeración con signo, comprobar ejercicios y preparar pequeños vectores de prueba sin repetir divisiones manualmente.
Qué representa el ternario equilibrado
El ternario convencional utiliza los dígitos cero, uno y dos, y cada posición vale una potencia de tres. El ternario equilibrado sustituye el dos por menos uno, de modo que su conjunto de dígitos es -1, 0 y 1. Cada dígito sigue multiplicando la potencia de tres correspondiente a su posición, pero los dígitos negativos pueden restar ese valor posicional.
La secuencia mostrada se ordena desde la potencia más alta hasta las unidades, como en la notación decimal habitual. Puesto que el token -1 ocupa una posición, este convertidor separa los dígitos mediante espacios en vez de unirlos en una cadena que podría interpretarse mal. La matriz de dígitos devuelve la misma información en un formato directamente utilizable por programas.
Todo entero tiene una expansión ternaria equilibrada finita y única cuando se omiten los ceros iniciales. Por eso, las entradas positivas y negativas no necesitan un signo independiente: los signos ya forman parte de los propios dígitos. Esta propiedad hace que la representación sea simétrica respecto de cero y facilite comparar un entero con su opuesto.
Cómo funciona el algoritmo de conversión
El convertidor divide repetidamente el entero actual entre tres y examina el resto. Un resto de cero o uno ya es un dígito equilibrado permitido, así que se registra directamente. Un resto de dos se sustituye por -1 y se suma un acarreo de uno a la posición siguiente, porque dos equivale a menos uno más un grupo de tres.
JavaScript puede producir restos negativos cuando el dividendo es negativo, por lo que también se trata el caso simétrico: un resto de -2 pasa a ser 1 y el cociente siguiente disminuye en uno. Los dígitos se descubren desde las unidades hacia arriba y se invierten al final para presentarlos en el orden normal de lectura. El bucle termina únicamente cuando el cociente ajustado llega a cero.
El procedimiento no usa aproximaciones, servicios de consulta, valores aleatorios ni reloj. Rechazarlos evita entregar una secuencia verosímil, pero incorrecta.
Cómo leer, verificar y utilizar el resultado
Para verificar un resultado, empiece por el dígito situado más a la derecha con la potencia tres elevada a cero, multiplique cada dígito por la potencia de tres que le corresponde y sume todos los términos con su signo. El total debe coincidir con el entero original. También se repite el valor original `n` para que los registros y lotes conserven su contexto.
El cero es el único caso especial de presentación y devuelve un solo dígito cero, no una secuencia vacía. Use la herramienta del navegador para explorar, estudiar o revisar un cálculo aislado.
Qué puede hacer con ella
Comprobar ejercicios de sistemas numéricos
Convierta un entero decimal y compare los dígitos con signo con una solución manual basada en divisiones sucesivas.
Explorar representaciones simétricas
Compare enteros positivos y negativos para observar cómo los dígitos con signo expresan la negación sin un prefijo adicional.
Preguntas frecuentes
¿Qué dígitos utiliza el ternario equilibrado?
Utiliza -1, 0 y 1. Cada posición tiene un valor que corresponde a una potencia de tres.
¿Por qué se separan los dígitos con espacios?
Los espacios muestran claramente que -1 es un solo dígito y evitan confundir su signo menos con el signo del número completo.
¿Puede convertir enteros negativos?
Sí. Los valores negativos se representan directamente mediante dígitos con signo, sin añadir un signo inicial independiente.
¿Cómo compruebo a mano un resultado en ternario equilibrado?
Empiece por el dígito de la derecha, que vale las unidades, multiplique cada dígito por su potencia de tres y sume los términos con signo. Para 1 −1 1 −1 queda tres al cubo menos tres al cuadrado más tres menos uno, es decir, 20.
¿En qué se diferencia del sistema en base tres normal?
La base tres normal usa los dígitos 0, 1 y 2; el ternario equilibrado cambia el 2 por −1 y lleva uno a la posición siguiente. Así el signo va dentro de los dígitos y no hace falta un signo menos aparte.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/numth/balanced-ternary \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":20}'const res = await fetch("https://api.kit.forhosting.com/numth/balanced-ternary", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 20
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/balanced-ternary",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 20
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/balanced-ternary", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":20}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":20}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/balanced-ternary", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"n": 20
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.balanced_ternary",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Cómo funciona el algoritmo de conversión
La entrada debe ser un entero seguro, ya que los números JSON de mayor magnitud podrían haber perdido precisión antes de comenzar la conversión.
Cómo leer, verificar y utilizar el resultado
El campo `balanced_ternary` está pensado para personas: sus tokens aparecen separados por un único espacio y cada uno es exactamente -1, 0 o 1. El campo `digits` está pensado para software y enumera esos mismos valores como enteros JSON, desde el más significativo hasta el menos significativo. Los decimales, cadenas numéricas, infinitos y enteros fuera del intervalo seguro producen un error `invalid_input` en lugar de convertirse o redondearse silenciosamente.
Casos de integración
Generar vectores de prueba deterministas
Obtenga matrices exactas de dígitos ternarios equilibrados para pruebas unitarias de software aritmético, educativo o de codificación.
Preguntas técnicas
¿Por qué se rechazan los enteros muy grandes?
Los números JSON fuera del intervalo seguro de JavaScript pueden redondearse antes de la conversión. Rechazarlos protege la exactitud del resultado.
¿Cuánto cuesta una conversión mediante la API?
Cada solicitud a la API cuesta $0.002. También puede ejecutar el convertidor gratuitamente en el navegador desde esta página.