In Science
Date

Le système numéraire romain et les maths

Les chiffres romains sont synonyme de classe, mais est-il possible de calculer facilement dans le système de numération romain ?

Il y a quelques jours j'apprenais à un ami que nos chiffres ne sont pas, contrairement à la croyance populaire, arabes mais indiens. Les arabes utilisent même, selon les pays, parfois plutôt l'abjad que le chiffre indien. Par contre ce sont bien les arabes qui les ont importés en Occident. C'est grâce à Al-Khwârizmî au IXè siècle avec son Traité du système de numération des Indiens que les chiffres que l'on utilise au quotidien ont commencé à se démocratiser petit à petit en Occident. Pour l'anecdote, le mot algorithme nous vient du nom d'Al-Khwârizmî.

Dans la discussion j'évoque que, tout de même les chiffres romains c'est quand même classe. Ils sont d'ailleurs souvent utilisés au quotidien, sur les cadrans de certaines montres ou horloges, pour certaines dates (vous remarquerez devant votre film qu'à la fin du générique l'année de publication est très souvent en notation romaine), pour la notation séculaire (comme j'ai pu écrire IXè siècle au paragraphe ci-avant), les notations de chapitres etc. De manière générale, qui dit index dit souvent notation romaine. Ce à quoi mon ami me répond - oui mais tu te vois en train de calculer en chiffres romains ?!... Et en fait c'est à la fois simple et fascinant, mais ça atteint très vite certaines limites, nous allons voir pourquoi.

Les chiffres

Les symboles numéraires romains sont tout simplement des lettres de leur alphabet :
I pour 1
V pour 5
X pour 10
L pour 50
C pour 100
D pour 500
M pour 1 000
Et pour les milliers on retrouve les mêmes parés d'un macron (un diacritique plat) qui est un multiplicateur par 1 000, et peut donc être doublé pour les millions.
V pour 5 000
X pour 10 000 L pour 50 000 C pour 100 000
D pour 500 000
M pour 1 000 000

Les bases

Le système numéraire romain est décimal (mais en mix scriptural de base 1, 5, et 10) mais sa notation n'est pas positionnelle. Notre système numéraire avec les chiffres indiens, lui, est positionnel : celà veut dire que dans un nombre à plusieurs chiffres, les chiffres sont positionnés entre eux comme multiplicateur du suivant dans la base établie.
Par exemple dans notre système décimal (base 10) quand vous écrivez le chiffre 234, de droite à gauche vous avez les unités, les dizaines, et les centaines, qui sont des multiplicateurs de puissance 10. En binaire avec le chiffre 11101010 (234 aussi) vous avez des puissances de 2, et en hexadecimal (base 16) le chiffre 234 donne EA avec des puissances de 16. Plus la base est grande, moins l'écriture du nombre prend de place (et donc c'est plus facile à stocker, sur une tablette de cire comme sur un disque dur). Si vous multipliez 16*16=256, donc, vous pouvez aller jusqu'à 255 (FF, 255 et pas 256 car il faut aussi compter le 0) avant de devoir passer à un troisième chiffre (oui ici E et A sont des chiffres) pour votre nombre : 100 = 256. Par contre vous avez plus de symboles différents pour chaque chiffre dans la base. En hexadécimal on complète avec les lettres de l'alphabet : 0123456789ABCDEF. F = 15.
La notation "10" vaut donc 16 quand lue en base hexadécimal, et vaut 2 quand lue en base binaire.

Et bien le système romain, lui, n'est pas positionnel, il est additif, c'est à dire que dans un nombre, les chiffres écrits s'additionnent entre eux. Accessoirement ils se soustraient et se multiplient aussi (seul le macron multiplie, et par 1 000 uniquement).

Composition d'un nombre

Du coup, on compose des nombres en additionnant et soustrayant les valeurs de caractères assemblés entre eux suivant leur position par rapport aux autres.
Les nombres s'ajoutent de gauche à droite de la plus forte valeur symbolique à la plus petite, mais se soustraient de droite à gauche par des plus petites valeurs symboliques. Par exemple :
2 s'écrit 11 (1+1) : II,
6 s'écrit 51 (5+1) : VI,
17 s'écrit 10+5+1+1 = XVII.
17 pourrait s'écrire IIIIIIIIIIIIIIIII, ou encore VVVII, mais ce serait long et le principe de la notation romaine est de réduire la longueur du nombre à son minimum de caractères possible.
Comme on va chercher à écrire le moins de caractères possibles, on va aussi utiliser la soustraction par la gauche en plaçant une plus petite valeur avant la forte qui doit être déduite. Par exemple le chiffre 9 s'écrira IX car il prend moins de place que VIIII. On a soustrait 1 à 10 en plaçant 1 à gauche de 10.
Par voie de conséquence on ne doit pas trouver 4 fois le même symbole d'affilée à l'exception des milliers. Et pourtant il est à noter qu'on peut quand même parfois retrouver écrit VIIII au lieu de IX ou même IIX à la place de VIII. On peut voir ça pour 2 raisons. Tout d'abord les règles de notation se sont affinées au cours du temps pour être fixées telles qu'on les connait aujourd'hui, plutôt vers la fin de l'Empire au IVè siècle, mais aussi quand le nombre écrit résultait du calcul, c'était parfois plus pratique ou rapide. Le Moyen-Âge a aussi vu son lot de réforme de la notation numéraire romaine avec les moines copistes qui l'utilisaient.
Du coup pour écrire un gros chiffre on commence par y rentrer les plus fortes valeurs à gauche : MCMLXXXV qui se décompose en Mille (M) plus cent qu'on soustrait à mille (CM) plus cinquante (L) plus trois fois dix (XXX) plus cinq (V), soit 1985.

Et là vous vous dites : "rien que d'écrire un nombre simple il faut déjà calculer, alors qu'est-ce que ça doit être les opérations de calcul ?"
En fait il faut remettre les choses en contexte, déjà quand vous lisez "1985", vous aussi vous faites du calcul et même encore plus complexe. 1985 dans notre système de notation décimale positionnelle se décompose comme :
Une fois dix puissance trois, plus neuf fois dix puissance deux, plus huit fois dix puissance un, plus cinq fois dix puissance zero, chaque chiffre de droite à gauche étant un multiple d'une puissance de dix qui s'incrémente à chaque passage à gauche.
Tout de suite on relativise. C'est juste qu'on a appris à compter de cette façon précise depuis la plus petite enfance et que c'est devenu automatique et intuitif, on ne voit même pas le calcul. Et bien c'etait pareil pour les romains il y a 2000 ans. On le trouve compliqué parce qu'on n'a toujours connu qu'une unique autre façon de faire très différente.

Le calcul

En fait, disons le clairement d'emblée, les romains ne calculaient pas avec leurs chiffres. L'époque et le paradigme n'étaient pas les mêmes, la représentation écrite d'un chiffre n'était vouée qu'à stocker un résultat. Représenter tout un calcul ne servait pas à grand chose et prenait de la place, car oui il faut rajouter que ce n'était pas non-plus l'époque du papier et des crayons à profusion, on écrivait sur des tablettes en pierre ou en cire, et ça s'économisait. C'était une société éminement orale et l'écrit ne se prétait pas trop à l'éphémère, on ne prenait que très peu de notes temporaires / jetables, le plus souvent avec un bâton pour dessiner dans le sable. Par contre, il n'en faisaient pas moins des calculs pour autant, mais ils avaient une arme de destruction massive pour ça : l'abacus, un des ancêtres du boulier. Il a été démontré que même à notre époque, une fois qu'on a pris le coup de l'utiliser, il est en moyenne 10 fois plus rapide (jusqu'à 100 fois même pour certains) d'effectuer de très gros calculs avec un boulier plutôt qu'une calculatrice moderne. Du coup, pas la peine de s'embêter à écrire ses calculs.
Cependant rien ne nous empêche de nous y essayer un peu de notre côté.

L'addition

Si je vous donnais là maintenant tout de suite à additioner MCMLXXXV + DCCXXII vous chercheriez d'abord à les convertir dans le système que vous connaissez : 1985 + 722, puis à partir de là vous en chercheriez la réponse, et de tête elle prendrait jusqu'à une dizaine de secondes à trouver : 2707. Et bien ça irait beaucoup plus vite en restant en chiffres romains car il n'y a que des calculs de petites sommes à faire au compactage. Il suffit juste de virer le +, de remettre les valeurs dans l'ordre (de gauche à droite du plus grand au plus petit) et de les compacter :

MCMLXXXV + DCCXXII = MCMLXXXV DCCXXII
MCMLXXXV + DCCXXII = MCMDCCLXXXXXVII
Le C à gauche du M étant une soustraction il peut s'annuler avec un C à droite du M :
MCMLXXXV + DCCXXII = MMDCLXXXXXVII
On a 5 X qui font donc L, et un L qui font donc C :
MCMLXXXV + DCCXXII = MMDCCVII = 2 707
Pas besoin, donc, de calculer autre chose que des cinq, des dix, des cents.

La soustraction

Du coup pour la soustraction c'est même encore plus rigolo, vous identifiez les lettres du nombre soustrayant et les enlevez du nombre à soustraire (sauf si elles sont déjà soustrayantes comme le C dans MCM) : MCMLXXXV - DCCXXII
Celà exige juste de casser parfois des compactages, par exemple j'ai 2 I à soustraire d'un nombre sans I, je casse donc le V en IIIII pour en avoir ainsi :
MCMLXXXV - DCCXXII = MDCCCCLXXXIIIII - DCCXXII
et il n'y a plus qu'à retirer les lettres et recompacter si besoin:
MDCCCCLXXXIIIII - DCCXXII = MCCLXIII

Multiplication et division

Et c'est là qu'on commence à voir les limites du système additif et les avantages du système positionnel.
Pour multiplier 54 x 8 à l'école on a appris à décomposer les positions, et plus basiquement dans un système positionnel, vous opérez la multiplication sur chaque position (avec sa puissance de base) et ajoutez ensuite les résultats :
Pour rappel 54 c'est 5 fois 10 puissance 0, plus 8 fois 10 puissance 1.
8 x 4.10^0 = 32
8 x 5.10^1 = 400
À l'école on raccourci l'opération de puissance sur la position en disant on multiplie par les unités, les dizaines, les centaines (séparément), et on fait celà dans un tableau à colonne de base :

5 4
x 8
_ _ _
3 2
+ 4 0 0

Cela exige par contre de connaitre par coeur toutes les tables de multiplications dans la base donnée (donc 10 dans la base décimale).
Et dans le système romain ? Du même principe qu'on a une colonne par multiplicateur de base dans notre système, on peut mettre chaque multiplicateur de la base romaine (qui bien que décimale dans le fond est à la fois 1, 5, et 10) dans une colonne dédiée, et ça fonctionne pareil. Notez que comme il y a des changements de base d'une colonne à l'autre, on peut se passer des colonnes intermédiaires telles que L et V qui ne sont que des agrégations de X ou I, pour plus de simplicité il est d'ailleurs bon de casser les compactages (y compris les pré-soustractions).

C L X V I (explication)
L IIII 54
x V III x8
X II 3x4=12
+ C L + 3x50=150
+ XX + 5x4=20
+ CC L + 5x50=250
= CCC LL XXX II l'addition ici est plus simple il suffit de tout descendre
= CCCC XXX II et compacter

432, les comptes sont bons. Mais comme il y a plus de colonnes de multiples, il y a donc plus de lignes de calculs additionnels. Niveau efficacité, même si le procédé est le même, il est donc moins performant que notre positionnel.

Enfin pour la division, de la même manière qu'il n'y a pas de trick universel dans notre système décimal positionnel, il n'y en a pas non plus avec les chiffres romains. Elles peuvent s'opérer de l'exacte même manière que la notre en format quotient / reste comme appris sur les bancs de l'école primaire : "combien de fois 8 dans 432 ?", avec des colonnes différentes par multiple de bases exactement comme pour la multiplication ci-avant.

Conclusion

Nous avons donc vu que si c'était simple et efficace pour l'addition et la soustraction, ça commençait à montrer quelques signes de faiblesse avec les produits. Bref, les romains l'avaient déjà compris, leur système numéraire n'est pas vraiment fait pour être posé pour le calcul. Et dans l'absolu ce n'est pas grave du tout puisque l'abacus faisait très bien le travail, encore mieux qu'une calculatrice moderne. L'époque était différente, les supports pour écrire étaient moins consommables et faciles d'accès qu'aujourd'hui, le monde était beaucoup plus dans l'oralité, ce qui était écrit tenait plus de la nécessité de conserver le résultat que du besoin de connaître le calcul, l'abacus était là pour le poser. En revanche pour l'usage qu'ils en faisaient la notation additionnelle était plutôt smart et utile.