Римские цифры lxxvi. Римские цифры (Roman numerals)

Сегодня в России римские цифры нужны, в первую очередь, для записи номера века или тысячелетия. Римские цифры удобно ставить рядом с арабскими – если написать век римскими цифрами, а затем год – арабскими, то в глазах не будет рябить от обилия одинаковых знаков. Римские цифры имеют некоторый оттенок архаичности. С их помощью также традиционно обозначают порядковый номер монарха (Петр I), номер тома многотомного издания, иногда – главы книги. Также римские цифры используются в циферблатах часов под старину. Важные числа, такие, как год олимпиады или номер научного закона, могут также фиксироваться при помощи римских цифр: II мировая, V постулат Евклида.

В разных странах римские цифры употребляются немножко по-разному: в СССР было принято указывать с помощью них месяц года (1.XI.65). На западе римскими цифрами часто пишут номер года в титрах фильмов или на фасадах зданий.

В части Европы, в особенности в Литве, нередко можно встретить обозначение римскими цифрами дней недели (I – понедельник и так далее). В Голландии римскими цифрами иногда обозначают этажи. А в Италии ими отмечают 100-метровые отрезки пути, отмечая, в то же время, арабскими цифрами каждый километр.

В России при письме рукой принято подчеркивать римские числа снизу и сверху одновременно. Однако часто в других странах подчеркивание сверху значило увеличение регистра числа в 1000 раз (или 10000 раз при двойном подчеркивании).

Существует распространенное заблуждение о том, что современные западные размеры одежды имеют некую связь с римскими цифрами. На самом деле обозначения XXL, S, M, L и т.п. не имеют никакой связи с ними: это аббревиатуры английских слов eXtra (очень), Small (маленький), Large (большой).

Римская нотация использует семь цифр - I , V , X , L , L , D , M . Для представления числа n в римской нотации возьмём количества его единиц n 0 , десятков n 1 , сотен n 2 и тысяч n 3 . Сначала запишем в римской нотации количество единиц. При 0 ⩽ n 0 ⩽ 3 просто запишем подряд цифру I (единица) n 0 раз. При 4 ⩽ n 0 ⩽ 8 запишем цифру V (она обозначает пять), и припишем к ней столько цифр I , на сколько n 0 больше или меньше пяти, причём если больше, то справа, а если меньше, то слева. Наконец, n 0 = 9 запишем как IX (X обозначает десятку, I слева показывает, что до десятки недостаёт единицы).

Точно так же поступим с количеством десятков n 1 , только вместо цифр I =1, V =5, C =10 будем использовать X =10, L =50, C =100.

Те же правила применяются к количеству сотен n 2 , для записи используются цифры C =100, D =500, M =1000.

Для тысяч римских цифр хватит только при 0 ⩽ n 3 ⩽ 3 , так что получится либо M , либо MM , либо MMM .

Все перечисленные правила суммированы в таблице .


Теперь составим вместе записи для n 3 , n 2 , n 1 , n 0 в порядке перечисления. Римская запись числа готова.

Например, число 1987 записывается как MCMLXXXVII . Здесь 1000 = M , 900 = CM , 80 = LXXX и 7 = VII .

Виден недостаток римской нотации: используя шесть цифр, она позволяет представить числа не более 3999 .

Анализ правил перевода чисел в римскую нотацию показывает, что достаточно записать римскими цифрами каждую из десятичных цифр заданного числа, учитывая номер её разряда, а затем составить вместе полученные записи. Правила записи десятичной цифры с помощью римских цифр примерно одни и те же - меняется в зависимости от разряда только лишь набор римских цифр, используемых для записи. Для единиц это I , V , X , для десятков - X , L , C , для сотен - C , D , M , для тысяч - только M (поскольку цифр для пяти и десяти тысяч не предусмотрено).

С учётом этого обстоятельства было бы разумно реализовать в виде процедуры (назовём её toRomanHelper) преобразование десятичной цифры в римскую нотацию. Процедура будет принимать два параметра - десятичную цифру и номер десятичного разряда. Возвращаемое значение - римская запись десятичной цифры, соответствующая её разряду.

Преобразованием числа в римскую запись будет заниматься процедура toRoman . Она разберёт число по десятичным цифрам. Для каждой десятичной цифры найдёт запись римскими цифрами в соответствии с разрядом, в котором она находится (для этого будет вызвана процедура toRomanHelper). Римские записи для десятичных цифр будут соединены вместе и получившаяся строка будет возвращена из процедуры.

Обратное преобразование будет осуществляться в обратном порядке. Строку, представляющую собой римскую запись числа, прежде всего нужно разделить по десятичным разрядам, а затем найдём десятичные цифры, соответствующие этим разрядам.

Задача разделения по разрядам теперь будет сложнее. Дело в том, что не каждая строка, составленная из римских цифр, будет правильной римской записью некоторого числа (в отличие от десятичной записи, в которой правильной будет любая последовательность десятичных цифр).

В соответствии с правилами формирования римской записи чисел правильная запись представляет собой четыре группы римских цифр, составленных вместе. Первая (расположенная слева) - группа, обозначающая тысячи, затем идёт группа сотен, затем десятков, и, наконец, единиц. То, из чего может состоять каждая из этих групп, можно увидеть в соответствующем столбце таблицы 31.1. «Запись десятичных разрядов римскими цифрами» .

Удачным решением было бы использовать регулярные выражения для разделения римской записи на группы цифр по разрядам. Для каждой группы нужно составить шаблон и заключить его в захватывающие скобки. Шаблоны для тысяч, сотен, десятков и единиц, составленные вместе, дадут регулярное выражение, которому должна соответствовать римская запись целиком. Поэтому в регулярное выражение следует добавить привязки к началу и концу строки.

Приступим к созданию шаблона для разряда единиц. Решение, которое первым приходит в голову - перечислить все альтернативы: (|I|II|III|IV|V|VI|VII|VIII|IX) . Обратите внимание на пустую альтернативу, с которой начинается перечисление: группа единиц в римской записи может быть и пустой. Это решение можно немного упростить, если использовать квантификаторы. Для цифр от 0 до 3 можно написать I{0,3} вместо |I|II|III , для цифр от 5 до 8 годится VI{0,3} вместо V|VI|VII|VIII . Таким образом, для разряда единиц получаем шаблон (I{0,3}|IV|VI{0,3}|IX) . Его можно дополнительно упростить, объединив первую альтернативу с третьей, а вторую с четвёртой: (V?I{0,3}|I) .

Для десятков и сотен получаются точно такие же шаблоны, только составленные из других римских цифр: (L?X{0,3}|X) (десятки) и (D?C{0,3}|C) (сотни). Для разряда тысяч шаблон совсем простой: (M{0,3}) .

Итак, для целой римской записи получаем такое регулярное выражение: ^(M{0,3})(D?C{0,3}|C)(L?X{0,3}|X)(V?I{0,3}|I)$ .

Римская система нумерации с помощью букв была распространена в Европе на протяжении двух тысяч лет. Только в позднем средневековье ее сменила более удобная для вычислений десятичная система цифр, заимствованная у арабов. Но, до сих пор римскими цифрами обозначаются даты на монументах, время на часах и (в англо-американской типографической традиции) страницы книжных предисловий. Кроме того, в русском языке римскими цифрами принято обозначать порядковые числительные.

Для обозначения чисел применялось 7 букв латинского алфавита: I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000. Промежуточные числа образовывались путем прибавления нескольких букв справа или слева. Сначала писались тысячи и сотни, затем десятки и единицы. Таким образом, число 24 изображалось как XXIV. Горизонтальная линия над символом означала умножение на тысячу.

Натуральные числа записываются при помощи повторения этих цифр. При этом, если большая цифра стоит перед меньшей, то они складываются (принцип сложения), если же меньшая - перед большей, то меньшая вычитается из большей (принцип вычитания). Последнее правило применяется только во избежание четырёхкратного повторения одной и той же цифры. Например, I, Х, С ставятся соответственно перед Х, С, М для обозначения 9, 90, 900 или перед V, L, D для обозначения 4, 40, 400. Например, VI = 5+1 = 6, IV = 5 - 1 = 4 (вместо IIII). XIX = 10 + 10 - 1 = 19 (вместо XVIIII), XL = 50 - 10 =40 (вместо XXXX), XXXIII = 10 + 10 + 10 + 1 + 1 + 1 = 33 и т.д.

Выполнение арифметических действий над многозначными числами в этой записи весьма неудобно. Система Римских цифр настоящее время не применяется, за исключением, в отдельных случаях, обозначения веков (XV век и т.д.), годов н. э. (MCMLXXVII т. д.) и месяцев при указании дат (например, 1. V.1975), порядковых числительных, а также иногда производных небольших порядков, больших трёх: yIV, yV и т.д.

Римские цифры
I 1 XI 11 XXX 30 CD 400
II 2 XII 12 XL 40 D 500
III 3 XIII 13 L 50 DC 600
IV 4 XIV 14 LX 60 DCC 700
V 5 XV 15 LXX 70 DCCC 800
VI 6 XVI 16 LXXX 80 CM 900
VII 7 XVII 17 XC 90 M 1000
VIII 8 XVIII 18 C 100 MM 2000
IX 9 XIX 19 CC 200 MMM 3000
X 10 XX 20 CCC 300

Мы все пользуемся римскими цифрами – отмечаем ими номера веков или месяцев года. Римские цифры находятся на часовых циферблатах, в том числе на курантах Спасской башни. Мы их используем, но знаем про них не так много.

Как устроены римские цифры

Римская система счета в ее современном варианте состоит из следующих базовых знаков:

I 1
V 5
X 10
L 50
C 100
D 500
M 1000

Чтобы запомнить цифры, непривычные для нас, пользующихся арабской системой, существует несколько специальных мнемонических фраз на русском и английском языках:
Мы Dарим Сочные Lимоны, Хватит Vсем Iх
Mы Dаем Cоветы Lишь Xорошо Vоспитанным Iндивидуумам
I Value Xylophones Like Cows Dig Milk

Система расположения этих цифр друг относительно друга такова: числа до трех включительно образуются при помощи сложения единиц (II, III), — четырехкратное повторение любой цифры запрещено. Чтобы образовать числа больше трех, складываются или вычитаются большая и меньшая цифры, для вычета меньшая цифра ставится перед большей, для прибавления — после, (4 = IV), та же логика действует и с другими цифрами (90 = XC). Порядок расположения тысяч, сотен, десятков и единиц тот же, что и привычный нам.

Важно, что любая цифра не должна повторять больше трех раз, таким образом, самое длинное число до тысячи – 888 = DCCCLXXXVIII (500+100+100+100+50+10+10+10+5+1+1+1).

Альтернативные варианты

Запрет на четвертое использование одной и той же цифры подряд стал появляться только в XIX веке. Поэтому в старинных текстах можно увидеть варианты IIII и VIIII вместо IV и IX, и даже IIIII или XXXXXX вместо V и LX. Остатки этого написания можно увидеть на часах, где четыре часто отмечается именно с помощью четырех единиц. В старых книгах также нередки случаи двойных вычитаний – XIIX или IIXX вместо стандартных в наши дни XVIII.

Также в Средневековье появилась новая римская цифра – ноль, который обозначался буквой N (от латинского nulla, ноль). Большие числа отмечались специальными знаками: 1000 — ↀ (или C|Ɔ),5000 – ↁ(или |Ɔ),10000 – ↂ (или CC|ƆƆ). Миллионы получаются при двойном подчеркивании стандартных цифр. Дроби римскими цифрами тоже писали: с помощью значков отмечались унции – 1/12, половина отмечалась символом S, а все, что больше 6/12 – прибавлением: S = 10\12. Еще один вариант – S::.

Происхождение

На данный момент не существует единой теории происхождения римских цифр. Одна из самых популярных гипотез гласит, что этрусско-римские цифры произошли от системы счета, которая использует вместо цифры штрихи-зарубки.

Таким образом, цифра «I» — это не латинская или более древняя буква «и», а насечка, напоминающая форму этой буквы. Каждую пятую насечку обозначали скосом – V, а десятую перечеркивали – Х. Число 10 выглядело в этом счете следующим образом: IIIIΛIIIIX.

Именно благодаря такой записи цифр подряд мы обязаны особой системе сложения римских цифр: со временем запись числа 8 (IIIIΛIII) могла сократиться до ΛIII, что убедительно демонстрирует, каким образом римская система счета получила свою специфику. Постепенно зарубки превратились в графические символы I, V и X, и приобрели самостоятельность. Позже они стали идентифицироваться с римскими буквами – так как были на них внешне похожи.

Альтернативная теория принадлежит Альфреду Куперу, который предположил рассмотреть римскую систему счета с точки зрения физиологии. Купер считает, что I, II, III, IIII – это графическое представление количества пальцев правой руки, выкидываемых торговцем при назывании цены. V – это отставленный большой палец, образующий вместе с ладонью подобную букве V фигуру.

Именно поэтому римские цифры суммируют не только единицы, но и складывают их с пятерками – VI, VII и т.п. – это откинутый большой палец и другие выставленные пальцы руки. Число 10 выражали с помощью перекрещивания рук или пальцев, отсюда пошел символ X. Еще один вариант – цифру V попросту удвоили, получив X. Большие числа передавали с помощью левой ладони, которая считала десятки. Так постепенно знаки древнего пальцевого счета стали пиктограммами, которые затем начали отождествлять с буквами латинского алфавита.

Современное применение

Сегодня в России римские цифры нужны, в первую очередь, для записи номера века или тысячелетия. Римские цифры удобно ставить рядом с арабскими – если написать век римскими цифрами, а затем год – арабскими, то в глазах не будет рябить от обилия одинаковых знаков. Римские цифры имеют некоторый оттенок архаичности. С их помощью также традиционно обозначают порядковый номер монарха (Петр I), номер тома многотомного издания, иногда – главы книги. Также римские цифры используются в циферблатах часов под старину. Важные числа, такие, как год олимпиады или номер научного закона, могут также фиксироваться при помощи римских цифр: II мировая, V постулат Евклида.

В разных странах римские цифры употребляются немножко по-разному: в СССР было принято указывать с помощью них месяц года (1.XI.65). На западе римскими цифрами часто пишут номер года в титрах фильмов или на фасадах зданий.

В части Европы, в особенности в Литве, нередко можно встретить обозначение римскими цифрами дней недели (I – понедельник и так далее). В Голландии римскими цифрами иногда обозначают этажи. А в Италии ими отмечают 100-метровые отрезки пути, отмечая, в то же время, арабскими цифрами каждый километр.

В России при письме рукой принято подчеркивать римские числа снизу и сверху одновременно. Однако часто в других странах подчеркивание сверху значило увеличение регистра числа в 1000 раз (или 10000 раз при двойном подчеркивании).

Существует распространенное заблуждение о том, что современные западные размеры одежды имеют некую связь с римскими цифрами. На самом деле обозначения XXL, S, M, L и т.п. не имеют никакой связи с ними: это аббревиатуры английских слов eXtra (очень), Small (маленький), Large (большой).

Для обозначения цифр в латинском языке приняты комбинации следующих семи знаков: I (1), V (5), X (10), L (50), С (100), D (500), М (1000).

Для запоминания буквенных обозначений цифр в порядке убывания придумано мнемоническое правило:

Мы Dарим Сочные Lимоны, Хватит Vсем Iх (соответственно M, D, C, L, X, V, I).

Если знак, обозначающий меньшее число, стоит справа от знака, обозначающего большее число, то меньшее число следует прибавлять к большему, если слева, то вычитать, а именно:

VI - 6, т.е. 5 + 1
IV - 4, т.е. 5 - 1
XI - 11, т.е. 10 + 1
IX - 9, т.е. 10 - 1
LX - 60, т.е. 50 + 10
XL - 40, т.е. 50 - 10
СХ - 110, т.е. 100 + 10
ХС - 90, т.е. 100-10
MDCCCXII - 1812, т.е. 1000 + 500 + 100 + 100 + 100 + 10 + 1 + 1.

Возможно различное обозначение одного и того же числа. Например, число 80 можно обозначить как LXXX (50 + 10 + 10 + 10) и как ХХС (100 - 20).

Для записи чисел римскими цифрами необходимо сначала записать число тысяч, затем сотен, затем десятков и, наконец, единиц.

I (1) - unus (унус)
II (2) - duo (дуо)
III (3) - tres (трэс)
IV (4) - quattuor (кваттуор)
V (5) - quinque (квинквэ)
VI (6) - sex (сэкс)
VII (7) - septera (сэптэм)
VIII (8) - octo (окто)
IX (9) - novem (новэм)
X (10) - decern (дэцем)
XI (11) - undecim (ундецим)
XII (12) - duodecim (дуодэцим)
ХШ (13) - tredecim (трэдэцим)
XIV (14) - quattuordecim (кваттуордэцим)
XV (15) - quindecim (квиндэцим)
XVI (16) - sedecim (сэдэцим)
XVII (17) - septendecim (сэптэндэцим)
XVIII (18) - duodeviginti (дуодэвигинти)
XIX (19) - undeviginti (ундэвигинти)
XX (20) - viginti (вигинти)
XXI (21) - unus et viginti или viginti unus
XXII (22) - duo et viginti или viginti duo и т.д.
XXVIII (28) - duodetriginta (дуодэтригинта)
XXIX (29) - undetriginta (ундэтригинта)
XXX (30) : triginta (тригинта)
XL (40) - quadraginta (квадрагинта)
L (5O) - quinquaginta (квинквагинта)
LX (60) - sexaginta (сэксагинта)
LXX (70) - septuaginta (сзлтуагинта)
LXXX180) - octoginta (октогинта)
КС (90) - nonaginta (нонагинта)
C (100) centum (центум)
CC (200) - ducenti (дуценти)
CCC (300) - trecenti (трэценти)
CD (400) - quadrigenti (квадригэнти)
D (500) - quingenti (квингэнти)
DC (600) - sescenti(сэсценти) или sexonti (сэксцонти)
DCC (700) - septigenti (сэптигэнти)
DCCC (800) - octingenti (октингэнти)
CV (DCCC) (900) - nongenti (нонгэнти)
M (1000) - mille (милле)
ММ (2000) - duo milia (дуо милиа)
V (5000) - quinque milla (квинквэ милиа)
X (10 000) - decem milia (дэцем милиа)
XX (20000) - viginti milia (вигинти милиа)
C (100000) - centum milia (центум милиа)
XI (1000000) - decies centena milia (дэциэс центэна милиа).

Если вдруг любознательный человек спросит, почему для обозначения цифр 50, 100, 500 и 1000 были выбраны латинские буквы V, L, С, D, М, то сразу скажем, что это вовсе не латинские буквы, а совсем иные знаки.

Дело в том, что основой для латинского алфавита послужил алфавит западногреческий. Именно к нему восходят три знака L, С и М. Здесь они обозначали придыхательные звуки, которых не было в латинском языке. Когда оформлялся латинский алфавит, именно они оказались лишними. Их и приспособили для обозначения чисел в латинской графике. Позднее они по написанию совпали с латинскими буквами. Так, знак С (100) стал похож на первую букву латинского слова centum (сто), а М (1000) - на первую букву слова mille (тысяча). Что же касается знака D (500), то он представлял собой половину знака Ф (1000), а потом уж стал похож на латинскую букву. Знак V (5) являлся всего навсего верхней половиной знака X (10).