Convertisseur ternaire équilibré avec chiffres -1, 0 et 1
20 s'écrit 1 −1 1 −1 en ternaire équilibré : trois au cube, moins trois au carré, plus trois, moins un. Saisissez n'importe quel entier, négatif compris, pour obtenir sa forme à chiffres signés, bien espacée. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- N
- 20
- Ternaire équilibré
- 1 -1 1 -1
- Chiffres
- 1, -1, 1, -1
Le convertisseur ternaire équilibré réécrit un entier en base trois avec les chiffres moins un, zéro et un. Saisissez un entier positif, négatif ou nul pour obtenir une représentation lisible séparée par des espaces ainsi qu’une liste numérique de chiffres. Les espaces rendent chaque -1 parfaitement identifiable lorsque vous copiez le résultat dans des notes, du code ou un calcul. La conversion est exacte, déterministe et fondée sur l’arithmétique entière. Elle convient donc à l’étude des systèmes de numération signée, à la vérification d’exercices et à la préparation de petits vecteurs de test sans divisions manuelles répétées.
Ce que représente le ternaire équilibré
Le système ternaire ordinaire emploie les chiffres zéro, un et deux, chaque position correspondant à une puissance de trois. Le ternaire équilibré remplace deux par moins un et utilise ainsi les chiffres -1, 0 et 1. Chaque chiffre multiplie toujours la puissance de trois associée à sa position, mais un chiffre négatif permet de soustraire cette valeur de position.
La suite affichée va de la puissance la plus élevée aux unités, comme dans l’écriture décimale habituelle. Puisque le token -1 occupe une seule position, le convertisseur sépare les chiffres par des espaces au lieu de les fusionner dans une chaîne ambiguë. La liste de chiffres fournit exactement la même information sous une forme directement exploitable par un programme.
Tout entier possède une écriture ternaire équilibrée finie et unique dès lors que les zéros initiaux sont omis. Les entrées positives et négatives n’exigent donc aucun signe distinct : les signes sont déjà portés par les chiffres. Cette propriété rend la représentation symétrique autour de zéro et facilite la comparaison d’un entier avec son opposé.
Fonctionnement de l’algorithme de conversion
Le convertisseur divise successivement l’entier courant par trois et examine le reste. Un reste égal à zéro ou à un constitue déjà un chiffre équilibré autorisé et peut être enregistré tel quel. Un reste de deux devient -1, avec une retenue de un ajoutée à la position suivante, car deux équivaut à moins un plus un groupe de trois.
JavaScript pouvant produire des restes négatifs avec des dividendes négatifs, le cas symétrique est également traité : un reste de -2 devient 1 et le quotient suivant diminue de un. Les chiffres sont trouvés en partant des unités, puis leur ordre est inversé pour obtenir le sens de lecture normal. La boucle ne s’arrête que lorsque le quotient corrigé atteint zéro.
Ce procédé n’emploie aucune approximation, aucun service distant, aucune valeur aléatoire et aucune horloge. Son rejet empêche de renvoyer une suite vraisemblable mais fausse.
Lire, vérifier et exploiter le résultat
Pour vérifier un résultat, commencez par le chiffre le plus à droite avec trois à la puissance zéro, multipliez chaque chiffre par la puissance de trois correspondant à sa position, puis additionnez les termes signés. La somme doit reproduire l’entier initial. La valeur d’origine `n` est répétée afin que les journaux et les lots restent compréhensibles isolément.
Zéro constitue le seul cas d’affichage particulier et renvoie un chiffre zéro plutôt qu’une suite vide. Utilisez l’outil du navigateur pour une exploration rapide, un exercice ou la vérification d’un calcul.
Cas d’usage
Vérifier des exercices de numération
Convertissez un entier décimal donné et comparez les chiffres signés avec une résolution manuelle par divisions successives.
Produire des vecteurs de test déterministes
Créez des listes exactes de chiffres ternaires équilibrés pour les tests unitaires de logiciels arithmétiques, pédagogiques ou d’encodage.
Étudier les représentations symétriques
Comparez des entiers positifs et négatifs pour voir comment les chiffres signés expriment l’opposé sans signe séparé.
Questions fréquentes
Quels chiffres le ternaire équilibré utilise-t-il ?
Il utilise -1, 0 et 1. Chaque position possède une valeur égale à une puissance de trois.
Pourquoi les chiffres sont-ils séparés par des espaces ?
Les espaces montrent clairement que -1 est un seul chiffre et évitent de confondre son signe moins avec celui du nombre entier.
Le convertisseur accepte-t-il les entiers négatifs ?
Oui. Les valeurs négatives sont exprimées directement par des chiffres signés, sans signe initial distinct.
Comment vérifier à la main un résultat en ternaire équilibré ?
Partez du chiffre de droite, celui des unités, multipliez chaque chiffre par sa puissance de trois et additionnez les termes signés. Pour 1 −1 1 −1, on obtient trois au cube moins trois au carré plus trois moins un, soit 20.
En quoi diffère-t-il de la base trois ordinaire ?
La base trois ordinaire utilise les chiffres 0, 1 et 2 ; le ternaire équilibré remplace 2 par −1 et reporte une unité au rang suivant. Le signe vit ainsi dans les chiffres, sans signe moins séparé.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"n": 20
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.balanced_ternary",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Fonctionnement de l’algorithme de conversion
L’entrée doit être un entier sûr, car un nombre JSON plus grand peut avoir perdu de la précision avant même la conversion.
Lire, vérifier et exploiter le résultat
Le champ `balanced_ternary` est destiné à la lecture : ses tokens sont séparés par un seul espace et chacun vaut exactement -1, 0 ou 1. Le champ `digits` est conçu pour les logiciels et présente ces mêmes valeurs comme des entiers JSON, du chiffre le plus significatif au moins significatif. Les nombres décimaux, chaînes numériques, infinis et entiers hors de la plage sûre provoquent une erreur `invalid_input` au lieu d’être arrondis ou convertis implicitement.
Questions techniques
Pourquoi les très grands entiers sont-ils refusés ?
Les nombres JSON hors de la plage sûre de JavaScript peuvent être arrondis avant la conversion. Les refuser garantit l’exactitude du résultat.
Combien coûte une conversion par API ?
Chaque requête API coûte $0.002. Vous pouvez également utiliser gratuitement le convertisseur dans votre navigateur sur cette page.