Système ternaire
Le système ternaire (ou trinaire) est le système de numération utilisant la base trois. Les chiffres ternaires sont connus[Par qui ?] sous le nom de trit (trinary digit), de manière analogue à bit.
Ternaire ou trinaire ?
Les expressions « ternaire » et « trinaire » sont toutes deux empruntées au bas latin trinarius « qui contient le nombre trois, ternaire ».
Ternaire est apparu au plus tard au XIVe siècle[1],[2], a été couramment employé jusqu'à notre époque[3],[4],[5],[6] et intégré au Dictionnaire de l'Académie Française en 1718[7].
Trinaire est employé comme synonyme de ternaire depuis au moins 1830[8],[9],[10], ne bénéficie pas d'une aussi large reconnaissance, n'étant présent que dans peu de dictionnaires[11],[12]. Il est également présent avec un usage similaire dans d'autres langues telles que l'anglais avec ternary et trinary[13].
Ces deux termes sont donc acceptables, même si ternaire bénéficie d'une plus grande diffusion.
Comparaison avec d'autres bases
Les nombres utilisés dans le système ternaire sont de trois types, 0, 1 et 2. Trois est écrit comme « 10 ». Par conséquent, quatre correspond à « 11 » et neuf à « 100 ».
Binaire | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 | 1011 | 1100 | 10000 | 10010 | 10101 | 11011 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ternaire | 0 | 1 | 2 | 10 | 11 | 12 | 20 | 21 | 22 | 100 | 101 | 102 | 110 | 121 | 200 | 210 | 1000 |
Sénaire | 0 | 1 | 2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 24 | 30 | 33 | 43 |
Décimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 16 | 18 | 21 | 27 |
Binaire | 100000 | 100100 | 110110 | 1000000 | 1010001 | 1100100 | 10000111 | 11011000 | 100000000 | 101101101 |
---|---|---|---|---|---|---|---|---|---|---|
Ternaire | 1012 | 1100 | 2000 | 2101 | 10000 | 11202 | 12000 | 22000 | 100111 | 111112 |
Sénaire | 52 | 100 | 130 | 144 | 213 | 244 | 343 | 1000 | 1104 | 1405 |
Décimal | 32 | 36 | 54 | 64 | 81 | 100 | 135 | 216 | 256 | 365 |
Binaire | 11 | 1001 | 11011 | 1010001 | 11110011 | 1011011001 | 1000100010111 | 100110100001 |
---|---|---|---|---|---|---|---|---|
Ternaire | 10 | 100 | 1000 | 10000 | 100000 | 1000000 | 10000000 | 100000000 |
Sénaire | 3 | 13 | 43 | 213 | 1043 | 3213 | 14043 | 50213 |
Décimal | 3 | 9 | 27 | 81 | 243 | 729 | 2187 | 6561 |
Fractions
Ternaire travaille divisions par des puissances de trois, ainsi que sénaire et nonaire, contrairement à binaire et hexadécimal (« puissances de deux » bases) ou décimal.
Mais, ternaire 10 (trois) n'est pas un multiple de deux, Il n'y a pas de « même quantité lorsqu'elle est divisée par deux » que senaire 0,3 ou décimale 0,5. Ainsi, les réciproques des nombres pairs est tout décimales infinies.
Fractions (sénaire) |
1/2 | 1/3 | 1/4 | 1/5 | 1/10 | 1/11 | 1/12 | 1/13 | 1/14 | 1/43 |
---|---|---|---|---|---|---|---|---|---|---|
Fractions (décimal) |
1/2 | 1/3 | 1/4 | 1/5 | 1/6 | 1/7 | 1/8 | 1/9 | 1/10 | 1/27 |
Binaire | 0,1 | 0,01… | 0,01 | 0,0011… | 0,001… | 0,001… | 0,001 | 0,000111… | 0,00011… | ※ |
Ternaire | 0,11… | 0,1 | 0,02… | 0,0121… | 0,011… | 0,010212… | 0,01… | 0,01 | 0,0022… | 0,001 |
Sénaire | 0,3 | 0,2 | 0,13 | 0,11… | 0,1 | 0,05… | 0,043 | 0,04 | 0,033… | 0,012 |
Décimal | 0,5 | 0,33… | 0,25 | 0,2 | 0,166… | 0,142857… | 0,125 | 0,11… | 0,1 | 0,037… |
※ 0.001(3) = 0.000010010111101…(2)
Notation ternaire équilibrée
Un système de numération appelé ternaire équilibré (en) utilise des chiffres avec les valeurs -1, 0, et 1. Cette combinaison est particulièrement intéressante pour les relations ordinales entre deux valeurs, où les trois relations possibles sont inférieur à, égal à et supérieur à. Le ternaire équilibré est compté comme suit : (dans cet exemple, le symbole 1 désigne le chiffre -1, mais de manière alternative pour un usage plus facile - peut être utilisé pour désigner -1 et + pour désigner +1).
Décimal | -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sénaire | -10 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 10 |
Ternaire équilibré | 110 | 111 | 11 | 10 | 11 | 1 | 0 | 1 | 11 | 10 | 11 | 111 | 110 |
Le ternaire non-équilibré peut être converti en notation ternaire équilibrée en ajoutant 1111… avec retenue, puis en soustrayant 1111… sans retenue. Par exemple, 0213 + 1113 = 2023, 2023 - 1113 = 1113(bal) = 710.
Utilisation du ternaire équilibré
En électronique
Le ternaire équilibré est facilement représenté par les signaux électroniques, comme potentiel pouvant être soit négatif, neutre ou positif. Par conséquent, un fil électrique peut transporter plus d'informations en ternaire (trois états) qu'en binaire (deux états). Ainsi, le système ternaire en électronique permet de réduire le nombre de composants, et donc la consommation électrique. L'avantage peut se calculer avec log(3)/log(2)=~1,584 9 bits par trit. Soit environ 60 % d'informations en plus dans un trit que dans un bit, ou plus pragmatiquement environ 40 % de fils électriques en moins (pour la même quantité d'informations).
En 1958 en Union soviétique, l'équipe de Nikolay Brusentsov (en) et Sergei Sobolev à l'université d'État de Moscou a développé un Ordinateur ternaire, le Setun, reposant sur l'utilisation de tôles feuilletées miniatures et de diodes utilisables pour créer un système basé sur une logique à trois états. À l'usage, ces éléments se sont révélés plus rapides, plus fiables, plus durables et moins gourmands en énergie que leurs concurrents binaires (du moins avant que l'URSS n'ait accès aux transistors). Le développement du Setun a pris sept ans, et l'ordinateur a été opérationnel sitôt assemblé. Une cinquantaine de machines ont été produites, mais le programme, considéré comme un caprice d'universitaires dans un pays qui a mis du temps à comprendre l'importance de l'informatique, a rapidement été abandonné, au profit d'ordinateurs binaires plus banals[14].
En développement logiciel
Les processeurs des ordinateurs effectuent des comparaisons de nombres. Trois cas se présentent : un nombre est supérieur, égal ou inférieur à un autre. Cette comparaison entre deux nombres se réalise en soustrayant ces deux nombres, le résultat étant stocké dans un registre du processeur. Le registre d'état associé indique alors si le résultat est négatif, nul ou positif (le drapeau Zero indique si nul ou pas et le drapeau Sign indique le signe).
Cette capacité ternaire des processeurs est quelquefois exploitée pour réaliser des opérations rapides. Par exemple, prenons le cas d'une fonction retournant un code pouvant prendre trois états différents. De façon académique, cette fonction est implémentée en renvoyant un type énuméré avec trois valeurs possibles. Le code de retour de cette fonction doit donc être comparé à chacune de ces trois valeurs pour réaliser l'opération associée à chaque état. En utilisant cette capacité du processeur, cette fonction peut être implémentée en renvoyant un entier signé. Déterminer le code de retour est alors bien plus rapide car ce sont les drapeaux (bits) du registre d'état qui sont directement vérifiés.
Exemple de fonction en C exploitant la capacité ternaire du processeur à distinguer les nombres négatifs, nuls et positifs.
int fonction ()
{
int code_retour;
// [...] traitement qui change la valeur du 'code_retour'
return code_retour;
}
void utilisateur()
{
int code = fonction ();
if (code == 0) //vérifie le bit 'Zero' du registre d'état
code_nul(); // => opération associée au code nul
else if (code > 0) //vérifie le bit 'Sign' du registre d'état
code_positif(); // => opération associée au code positif
else
code_negatif(); // => opération associée au code négatif
}
En transaction monétaire
Un système monétaire utilisant le ternaire équilibré réglerait le problème de l'accumulation de petite monnaie ou au contraire du manque de monnaie. Il faut pour cela frapper des pièces de valeur 1, 3, 9, 27… En exprimant les prix en ternaire standard, on a un moyen de faire l'appoint en n'utilisant au maximum que deux pièces de chaque valeur. Mais si on exprime les prix en ternaire équilibré, alors chaque 1 représente une pièce que le client doit donner au commerçant et chaque -1 une pièce que le commerçant doit lui rendre, la valeur des pièces étant déterminées par la position du chiffre dans le nombre. Par exemple, pour payer un prix de 1-10 (soit 6 en décimal), le client donne une pièce de 9 et le commerçant lui rend une pièce de 3. Les 1 et -1 étant également probables, la distribution des pièces reste uniforme. On ne va plus à la banque que pour déposer ou retirer des grandes pièces.
Dans d'autres domaines
Le ternaire équilibré possède d'autres applications. Par exemple, une balance classique à deux plateaux, avec une masse marquée pour chacune des n premières puissances de 3, peut peser des objets jusqu'à , en déplaçant les masses marquées entre les deux plateaux et la table. Aucun autre système de masses marquées ne permet de faire aussi bien avec aussi peu de masses marquées[15]. Par exemple, avec des masses marquées pour chaque puissance de 3 jusqu’à 81 = 34 un objet de 60 g sera pesé parfaitement avec une masse de 81 g sur l'autre plateau, la masse de 27 g dans le premier plateau, la masse de 9 g dans l'autre plateau, la masse de 3 g dans le premier plateau, et la masse de 1 g restant de côté. 60 = 11110.
Addition ternaire
Pour faire des additions ternaire il y a plusieurs solutions. La première explique ce que la deuxième sera faite de tête. Cela consiste à faire une conversion en décimal (attention tous les nombres en binaire dans le ternaire sont décimaux).
Exemple :
01010101010101010101+ 11011110101110101011= 12021211111211111112 (résultat décimal ou ternaire)
Les additions ternaires se font par conversion décimale. Exemple :
2102120212+ 1110210212= 3212330424 (conversion décimale) 10220101201 (résultat ternaire)
Dans les additions ternaires, il suffit comme en décimal de mettre une unité au-dessus. Exemples :
- décimal
99999+ 99999= 199998 9+9=18 on pose 8 on retient 1 qui vient s'ajouter aux autres chiffres
- ternaire
2102121+ 2121201= 12001022
0<1<2 2 est supérieur à 1 qui est supérieur à 0 1<2<0 1 est supérieur à 0 qui est supérieur à 2 2<0<1 0 est supérieur à 2 qui est supérieur à 1
3==0 s'il y a un résultat qui est a 3 on pose 0 4==1 si un résultat est a 4 on pose une unité au-dessus 1
if 33 s'il y a un résultat de 33 on pose 1 puis 0 sur le dernier 3 == 10 if 44 s'il y a un résultat de 44 on pose 1 puis 2 sur le dernier 4 == 12
if 333 de suite == 110 if 444 de suite == 112
Exemple :
212110+ 212021= 424131 conversion décimale 1201201 résultat ternaire
Représentation ternaire compacte
Le système ternaire est inefficace pour l'usage humain, tout comme le binaire.[réf. nécessaire] Par conséquent, le système nonaire (base 9, chaque chiffre représente deux chiffres de base 3) ou le système septemvigésimal (en) (base 27) (chaque chiffre représente trois chiffres de base 3) est souvent utilisé, de manière similaire à l'utilisation du système octal et du système hexadécimal à la place du système binaire. Le système ternaire possède aussi l'analogue d'un byte, appelé un tryte.
Notes et références
- Introduction d'Astronomie, .
- J. Lefevre, La Vieille, , p. 265.
- Mersenne, Harmonie universelle, , p. 299.
- Lavoisier, Chimie, t. 1, , p. 207.
- D'Indy, Composition musicale, t. 1, 1897-1900, p. 41.
- Larousse Encyclopédie, Supplément, Larousse, .
- « Définition de Ternaire », sur Centre National de Ressources Textuelles et Lexicales (consulté le ).
- Legendre, Théorie des nombres, t. 1, , p. 361.
- P. Leroux, Humanité, , p. 828.
- Jacques Bourdin, Les prolongements de la Grammaire Générale en France au XIXe siècle, Presses Universitaires de Franche-Comté, , 272 p. (ISBN 978-2-84867-085-0), p. 163.
- « Définition de TRINAIRE », sur Centre National de Ressources Textuelles et Lexicales (consulté le ).
- « Définition pour TRINAIRE adj. », sur Le Trésor de la Langue (consulté le ).
- (en) « trinary - Wiktionary », sur en.wiktionary.org (consulté le ).
- (en) Andrew Buntine, « The Balanced Ternary Machines of Soviet Russia », sur dev.to, .
- G. H. Hardy et E. M. Wright (trad. de l'anglais par François Sauvageot, préf. Catherine Goldstein), Introduction à la théorie des nombres [« An Introduction to the Theory of Numbers »] [détail de l’édition], chapitre 9 (« L'écriture décimale des nombres »), théorème 141.
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Ternary numeral system » (voir la liste des auteurs).
Voir aussi
Articles connexes
Liens externes
- (en) Development of ternary computers at Moscow State University
- (en) Third Base, sur le site de American Scientist
- (en) Nikolay Brusentsov - the Creator of the Trinary Computer, au musée virtuel de l'informatique de Kiev
- (en) Balanced Ternary Web Pages par J. Allwright, université de Westminster
- (en) Ternary Arithmetic par S. Whealton, sur washingtonart.net
- Portail des mathématiques