Convertitore ternario bilanciato con cifre -1, 0 e 1
20 in ternario bilanciato è 1 −1 1 −1: tre al cubo, meno tre al quadrato, più tre, meno uno. Inserisca qualsiasi intero, anche negativo, e ottenga la sua forma a cifre con segno, ben separate tra loro. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- N
- 20
- Ternario bilanciato
- 1 -1 1 -1
- Cifre
- 1, -1, 1, -1
Il convertitore ternario bilanciato riscrive un intero in base tre usando le cifre meno uno, zero e uno. Inserisca un intero positivo, negativo o nullo per ricevere sia una rappresentazione leggibile separata da spazi, sia un array numerico di cifre. Gli spazi rendono ogni -1 inequivocabile quando Lei copia il risultato in appunti, codice o calcoli. La conversione è esatta, deterministica e svolta con aritmetica intera; è quindi utile per studiare i sistemi numerici a cifre con segno, controllare esercizi e preparare piccoli vettori di test senza eseguire ripetutamente le divisioni a mano.
Che cosa rappresenta il ternario bilanciato
Il ternario ordinario usa le cifre zero, uno e due, con ogni posizione associata a una potenza di tre. Il ternario bilanciato sostituisce il due con meno uno e adotta quindi le cifre -1, 0 e 1. Ogni cifra continua a moltiplicare la potenza di tre della propria posizione, ma le cifre negative possono sottrarre quel valore posizionale.
La sequenza visualizzata procede dalla potenza più alta alle unità, proprio come nella comune notazione decimale. Poiché il token -1 occupa una posizione, il convertitore separa le cifre con spazi invece di unirle in una stringa che potrebbe risultare ambigua. L’array delle cifre contiene le stesse informazioni in una forma direttamente utilizzabile dai programmi.
Ogni intero possiede un’espansione ternaria bilanciata finita e unica se si escludono gli zeri iniziali. Gli input positivi e negativi non richiedono quindi un segno separato: i segni sono già incorporati nelle cifre. La rappresentazione risulta simmetrica rispetto allo zero ed è particolarmente comoda per confrontare un intero con il suo opposto.
Come funziona l’algoritmo di conversione
Il convertitore divide ripetutamente l’intero corrente per tre ed esamina il resto. Un resto pari a zero o uno è già una cifra bilanciata valida e viene registrato direttamente. Un resto pari a due viene sostituito da -1, aggiungendo un riporto di uno alla posizione successiva, perché due equivale a meno uno più un gruppo di tre.
JavaScript può produrre resti negativi quando il dividendo è negativo, quindi viene gestito anche il caso speculare: un resto pari a -2 diventa 1 e il quoziente successivo diminuisce di uno. Le cifre vengono ricavate a partire dalle unità e infine invertite per presentarle nel consueto ordine di lettura. Il ciclo termina soltanto quando il quoziente corretto raggiunge zero.
Il procedimento non usa approssimazioni, servizi di rete, valori casuali o orologi. Il rifiuto di tali valori impedisce di restituire una sequenza plausibile ma errata.
Come leggere, verificare e usare il risultato
Per verificare il risultato, inizi dalla cifra più a destra con tre elevato alla potenza zero, moltiplichi ogni cifra per la potenza di tre corrispondente alla sua posizione e sommi i termini con il rispettivo segno. La somma deve coincidere con l’intero originale. Viene ripetuto anche il valore originale `n`, così registri e batch restano comprensibili senza altro contesto.
Lo zero è l’unico caso speciale di presentazione e restituisce una cifra zero anziché una sequenza vuota. Usi lo strumento nel browser per esplorazioni rapide, attività didattiche o controlli isolati.
Casi d'uso
Controllare esercizi sui sistemi numerici
Converta un intero decimale assegnato e confronti le cifre con segno con una soluzione manuale basata su divisioni successive.
Generare vettori di test deterministici
Crei array esatti di cifre ternarie bilanciate per test unitari di software aritmetico, didattico o di codifica.
Esplorare rappresentazioni simmetriche
Confronti interi positivi e negativi per osservare come le cifre con segno esprimono la negazione senza un prefisso separato.
Domande frequenti
Quali cifre usa il ternario bilanciato?
Usa -1, 0 e 1. Ogni posizione ha un valore corrispondente a una potenza di tre.
Perché le cifre sono separate da spazi?
Gli spazi chiariscono che -1 è una singola cifra ed evitano di confondere il suo segno meno con il segno dell’intero numero.
Il convertitore gestisce gli interi negativi?
Sì. I valori negativi sono rappresentati direttamente con cifre dotate di segno, senza aggiungere un segno iniziale separato.
Come verifico a mano un risultato in ternario bilanciato?
Parta dalla cifra più a destra, quella delle unità, moltiplichi ogni cifra per la sua potenza di tre e sommi i termini con segno. Per 1 −1 1 −1 si ottiene tre al cubo meno tre al quadrato più tre meno uno, cioè 20.
In cosa differisce dalla normale base tre?
La base tre normale usa le cifre 0, 1 e 2; il ternario bilanciato sostituisce il 2 con −1 e riporta uno alla posizione successiva. Così il segno sta dentro le cifre e non serve un segno meno separato.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"n": 20
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.balanced_ternary",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Come funziona l’algoritmo di conversione
L’input deve essere un intero sicuro, poiché numeri JSON più grandi potrebbero avere già perso precisione prima della conversione.
Come leggere, verificare e usare il risultato
Il campo `balanced_ternary` è pensato per le persone: i token sono separati da un singolo spazio e ciascuno vale esattamente -1, 0 o 1. Il campo `digits` è pensato per il software ed elenca gli stessi valori come interi JSON, dal più significativo al meno significativo. Decimali, stringhe numeriche, infiniti e interi fuori dall’intervallo sicuro restituiscono un errore `invalid_input`, senza arrotondamenti o conversioni implicite.
Domande tecniche
Perché gli interi molto grandi vengono rifiutati?
I numeri JSON oltre l’intervallo sicuro di JavaScript possono essere arrotondati prima della conversione. Il rifiuto preserva l’esattezza del risultato.
Quanto costa una conversione tramite API?
Ogni richiesta API costa $0.002. Lei può anche eseguire gratuitamente il convertitore nel browser su questa pagina.