Значение римских цифр

Римские цифры

Часы-куранты Спасской башни с римскими цифрами на циферблате Системы счисления в культуре Индо-арабскаяВосточноазиатскиеАлфавитныеДругиеПозиционные Смешанные системы Непозиционные
Арабская
Тамильская
Бирманская
Кхмерская
Лаосская
Монгольская
Тайская
Китайская
Японская
Сучжоу
Корейская
Вьетнамская
Счётные палочки
Абджадия
Армянская
Ариабхата
Кириллическая
Греческая
Эфиопская
Еврейская
Акшара-санкхья
Вавилонская
Египетская
Этрусская
Римская
Дунайская
Аттическая
Кипу
Майяская
Эгейская
Символы КППУ
2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 60
Нега-позиционная
Симметричная
Фибоначчиева
Единичная (унарная)

Ри́мские ци́фры — цифры, использовавшиеся древними римлянами в их непозиционной системе счисления.

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

Римские цифры появились за 500 лет до нашей эры у этрусков, которые могли заимствовать часть цифр у прото-кельтов.

Римские цифры

1 I лат. unus, unum
5 V лат. quinque
10 X лат. decem
50 L лат. quinquaginta
100 C лат. centum
500 D лат. quingenti
1000 M лат. mille
Число Обозначение
1 I
2 II
3 III
4 IV, до XIX века — IIII
5 V
6 VI
7 VII
8 VIII (иногда — IIX)
9 IX (иногда — VIIII)
10 X
20 XX
30 XXX
40 XL
50 L
60 LX
70 LXX
80 LXXX
90 XC
100 C
200 CC
300 CCC
400 CD
500 D; IƆ
600 DC; IƆC
700 DCC; IƆCC
800 DCCC; IƆCCC
900 CM; CCIƆ
1 000 M; ↀ; CIƆ
2 000 MM; CIƆCIƆ
3 000 MMM; CIƆCIƆCIƆ
3 999 MMMCMXCIX
4 000 MV; ↀↁ; CIƆIƆƆ
5 000 V; ↁ; IƆƆ
6 000 VM; ↁↀ; IƆƆCIƆ
7 000 VMM; ↁↀↀ; IƆƆCIƆCIƆ
8 000 VMMM; ↁↀↀↀ; IƆƆCIƆCIƆCIƆ
9 000 IX[1]; ↀↂ; CIƆCCIƆƆ
10 000 X; ↂ; CCIƆƆ
20 000 XX; ↂↂ; CCIƆƆCCIƆƆ
30 000 XXX; ↂↂↂ; CCIƆƆCCIƆƆCCIƆƆ
40 000 XL; ↂↇ; CCIƆƆIƆƆƆ
50 000 L; ↇ; IƆƆƆ
60 000 LX; ↇↂ; IƆƆƆCCIƆƆ
70 000 LXX; ↇↂↂ; IƆƆƆCCIƆƆCCIƆƆ
80 000 LXXX; ↇↂↂↂ; IƆƆƆCCIƆƆCCIƆƆCCIƆƆ
90 000 XC; ↂↈ; CCIƆƆCCCIƆƆƆ
100 000 C; ↈ; CCCIƆƆƆ
200 000 CC; ↈↈ; CCCIƆƆƆCCCIƆƆƆ
300 000 CCC; ↈↈↈ; CCCIƆƆƆCCCIƆƆƆCCCIƆƆƆ
400 000 CD; CCCIƆƆƆIƆƆƆƆ
500 000 D; IƆƆƆƆ
600 000 DC; IƆƆƆƆCCCIƆƆƆ
700 000 DCC; IƆƆƆƆCCCIƆƆƆCCCIƆƆƆ
800 000 DCCC; IƆƆƆƆCCCIƆƆƆCCCIƆƆƆCCCIƆƆƆ
900 000 CM; CI; CCCIƆƆƆCCCCIƆƆƆƆ
1 000 000 M; I; CCCCIƆƆƆƆ

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

При этом некоторые из цифр (I, X, C, M) могут повторяться, но не более трёх раз подряд; таким образом, с их помощью можно записать любое целое число не более 3999 (MMMCMXCIX). В ранние периоды существовали знаки для обозначения бо́льших цифр — 5000, 10 000, 50 000 и 100 000[источник не указан 2369 дней] (тогда максимальное число по упомянутому правилу равно 399 999). При записи чисел в римской системе счисления меньшая цифра может стоять справа от большей; в этом случае она прибавляется к ней. Например, число 283 по-римски записывается как CCLXXXIII, то есть 100+100+50+30+3=283. Здесь цифра, изображающая сотню, повторена два раза, а цифры, изображающие соответственно десяток и единицу, повторены по три раза.

Пример: число 1988. Одна тысяча M, девять сотен CM, восемь десятков LXXX, восемь единиц VIII. Запишем их вместе: MCMLXXXVIII.

Довольно часто, чтобы выделить числа в тексте, над ними рисовали черту: LXIV. Иногда черту рисовали и сверху, и снизу: XXXII — в частности, так принято выделять римские цифры в русском рукописном тексте (в типографском наборе это не используют из-за технической сложности). У других авторов черта сверху могла обозначать увеличение значения цифры в 1000 раз: V = 5000.

Часы марки Tissot с традиционным написанием «IIII»

Повсеместно записывать число «четыре» как «IV» стали только в XIX веке, до этого наиболее часто употреблялась запись «IIII». Однако запись «IV» можно встретить уже в документах манускрипта «Forme of Cury», датируемых 1390 годом. На циферблатах часов в большинстве случаев традиционно используется «IIII» вместо «IV», главным образом, по эстетическим соображениям: такое написание обеспечивает визуальную симметрию с цифрами «VIII» на противоположной стороне, а перевёрнутую «IV» прочесть труднее, чем «IIII». Существует и версия, что IV на циферблате не писалось потому, что IV — первые буквы имени бога Юпитера (IVPITER).

Меньшая цифра может быть записана и слева от большей, тогда её следует вычесть из большей. При этом вычитаться могут только цифры, обозначающие 1 или степени 10, а в качестве уменьшаемого выступать только ближайшие в числовом ряду к вычитаемой две цифры (то есть вычитаемое, умноженное на 5 или 10). Повторения меньшей цифры не допускаются. Таким образом, существует только шесть вариантов использования «правила вычитания»:

  • IV = 4
  • IX = 9
  • XL = 40
  • XC = 90
  • CD = 400
  • CM = 900

Например, число 94 будет XCIV = 100 − 10 + 5 − 1 = 94 — так называемое «правило вычитания» (появилось в эпоху поздней античности, а до этого римляне писали число 4 как IIII, а число 40 — как XXXX).

Необходимо отметить, что другие способы «вычитания» недопустимы; так, число 99 должно быть записано как XCIX, но не как IC. Однако, в наши дни в некоторых случаях используется и упрощенная запись римских чисел: например, в программе Microsoft Excel при преобразовании арабских цифр в римские при помощи функции «РИМСКОЕ()» можно использовать несколько видов представления чисел, от классического до сильно упрощенного (так, число 499 может быть записано как CDXCIX, LDVLIV, XDIX, VDIV или ID). Упрощение состоит в том, что для уменьшения какой-либо цифры слева от неё может писаться любая другая цифра:

  • 999. Тысяча (M), вычтем 1 (I), получим 999 (IM) вместо CMXCIX. Следствие: 1999 — MIM вместо MCMXCIX
  • 95. Сто (C), вычтем 5 (V), получим 95 (VC) вместо XCV
  • 1950: Тысяча (M), вычтем 50 (L), получим 950 (LM). Следствие: 1950 — MLM вместо MCML

Случаи такой записи чисел (как правило, годов) часто встречаются в титрах телесериалов США. Например, для года 1998: IIMM вместо MCMXCVIII.

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

CXXIIICXXIII

А миллион как I, но только не с одной, а с двумя чертами во главе: I

Применение

Автограф Б. Н. Ельцина 10 ноября 1988 года. Месяц указан римскими цифрами. Римские цифры, обозначающие день недели, на витрине одного из магазинов в Вильнюсе

В русском языке римские цифры используются в следующих случаях:

  • Номер века или тысячелетия: XIX век, II тысячелетие до н. э.
  • Порядковый номер монарха
  • Номер корпуса в Вооруженных силах
  • Группа крови на нашивках формы военнослужащих ВС РФ
  • Номер тома в многотомной книге (иногда — номера частей книги, разделов или глав).
  • В некоторых изданиях — номера листов с предисловием к книге, чтобы не исправлять ссылки внутри основного текста при изменении предисловия.
  • Маркировка циферблатов часов «под старину».
  • Иные важные события или пункты списка, например: V постулат Евклида, II мировая война, XX съезд КПСС, Игры XXII Олимпиады и т. п.
  • Валентность химических элементов.
  • Порядковый номер ступени в звукоряде.
  • База гомеопатических разведений (Conium X3, Aconitum C200 и т. п.).
  • В математическом анализе римскими цифрами иногда записывается номер производной выше третьей.

Римские цифры широко употреблялись в СССР при указании даты для обозначения месяца года, например: 11/III-85 или 9.XI.89, это можно увидеть на многих архивных документах тех времён. Подобным образом, через косую черту, в том числе записывали дату урока в классных журналах, например: 24/II. Для указания дат жизни и смерти на надгробиях часто использовался особый формат, где месяц года также обозначался римскими цифрами, например: 18 6 X I I 78 ∼ 19 5 I I I 53 {\displaystyle 18{\frac {6}{XII}}78\sim 19{\frac {5}{III}}53} . Подобный формат в 1970-1980ых годах использовался в медицинских справках.

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

В других языках сфера применения римских цифр может иметь особенности. В западных странах римскими цифрами нередко записывается номер года, например, на фронтонах зданий и в титрах кино- и видеопродукции.

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

Юникод

Символы со сходным начертанием: І · Ӏ · I · I · l · ﺍ‎‎ · ו‎‎ · Ι · ǀ · | · ɪ · 丨 Символы со сходным начертанием: V · Ѵ · ∨ · ⋁ · ⋎ Символы со сходным начертанием: X · Χ · Х · ㄨ Символы со сходным начертанием: L · Լ Символы со сходным начертанием: C · С · Ϲ · င Символ со сходным начертанием: D Символы со сходным начертанием: M · Μ · М · Ϻ Символы со сходным начертанием: ʕ · Ҁ · Ϟ · Ϛ · Ⴚ

Стандарт Юникода рекомендует использовать для представления римских цифр обычные латинские буквы.[2] Тем не менее стандарт включает также специальные символы для римских цифр как часть Числовых форм (англ. Number Forms)[3] в области знаков с кодами с U+2160 по U+2188. Например, MCMLXXXVIII может быть представлено в форме ⅯⅭⅯⅬⅩⅩⅩⅧ. Этот диапазон включает как строчные, так и прописные цифры для записи чисел от 1 (Ⅰ или I) до 12 (Ⅻ или XII), в том числе и комбинированные глифы для составных чисел, таких как 8 (Ⅷ или VIII), главным образом для обеспечения совместимости с восточноазиатскими наборами символов в таких промышленных стандартах, как JIS X 0213, где эти символы определены. Комбинированные глифы используются для представления чисел, которые ранее составлялись из отдельных символов (например, Ⅻ вместо его представления как Ⅹ и Ⅱ). В дополнение к этому, глифы существуют для архаичных[3] форм записи чисел 1000, 5000, 10 000, большой обратной C (Ɔ), поздней формы записи 6 (ↅ, похожей на греческую стигму: Ϛ), ранней формы записи числа 50 (ↆ, похожей на стрелку, указывающую вниз ↓⫝⊥[4]), 50 000, и 100 000. Следует отметить, что маленькая обратная c, ↄ не включена в символы римских цифр, но включена в стандарт Юникод как прописная клавдиева буква Ↄ.

Римские цифры в Юникоде Код 0 1 2 3 4 5 6 7 8 9 A B C D E F Значение[5] 1 2 3 4 5 6 7 8 9 10 11 12 50 100 500 1 000 U+2160 U+2170 Значение 1 000 5 000 10 000 100 6 50 50 000 100 000 U+2180

2160

2161

2162

2163

2164

2165

2166

2167

2168

2169

216A

216B

216C

216D

216E

216F

2170

2171

2172

2173

2174

2175

2176

2177

2178

2179

217A

217B

217C

217D

217E

217F

2180

2181

2182

2183

2185

2186

2187

2188

Отображение всех этих символов требует наличия программного обеспечения, поддерживающего стандарт Юникод, и шрифта, содержащего соответствующие этим символам глифы (например, шрифт Universalia).

Регулярные выражения

Регулярное выражение для проверки римских цифр — ^(M{0,3})(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])$[6] В языке Perl для поиска римских цифр в строке можно использовать регулярное выражение m/\b((?:M{0,3}?(?:D?C{0,3}|C[DM])?(?:L?X{0,3}|X[LC])?(?:I{0,3}?V?I{0,3}|I[VX])))\b/gs.

Преобразование

Для преобразования чисел, записанных арабскими цифрами, в римские используются специальные функции. Например, в русской версии Microsoft Excel для этого существует функция РИМСКОЕ(аргумент), в английской версии Microsoft Excel и в любой версии OpenOffice.org Calc эта функция называется ROMAN(аргумент).

Функции преобразования на JavaScript var arab = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000]; var roman = ['I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M']; function arabToRoman(number) { if(!number) return ''; var ret = ''; var i = arab.length - 1; while(number > 0) { if(number >= arab[i]) { ret += roman[i]; number -= arab[i]; } else { i--; } } return ret; } function romanToArab(str) { str = str.toUpperCase(); var ret = 0; var i = arab.length - 1; var pos = 0; while(i >= 0 && pos < str.length ) { if(str.substr(pos, roman[i].length) == roman[i]) { ret += arab[i]; pos += roman[i].length; } else { i--; } } return ret; } Аналогичные функции на Си (C89): #include const int arabar[] = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000}; const char *romanar[] = { "I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"}; char *arab2roman(unsigned short int arab) { static char roman[80]; const int m = sizeof(arabar)/sizeof(int)-1, arabmax=arabar[m]; const char romanmax=romanar[m][0]; int i, n; if(!arab) { *roman=0; return roman; } i=0; while(arab>arabmax) { roman[i++] = romanmax; arab -= arabmax; } n=m; while(arab > 0) { if(arab >= arabar[n]) { roman[i++] = romanar[n][0]; if(n&1) roman[i++] = romanar[n][1]; arab -= arabar[n]; } else n--; } roman[i]=0; return roman; } unsigned short int roman2arab(char *roman) { const int m = sizeof(arabar)/sizeof(int)-1; unsigned short int arab; int len, n, i, pir; len=strlen(roman); arab=0; n=m; i=0; while(n >= 0 && i < len) { pir=n&1; if(roman[i] == romanar[n][0] && (!pir || roman[i+1] == romanar[n][1])) { arab += arabar[n]; i += 1+pir; } else n--; } return arab; } Программа перевода арабских цифр в римские и наоборот[7] type str2 = string[2]; const Rims : array[1..14] of str2 = ('M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I',' '); Arab : array[1..14] of integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1, 0); var N, NI, I, J : integer; S : string; function Arab2Rim(N : integer) : string; var S : string; I : integer; begin S := ''; I:=1; while N > 0 do begin while Arab[I]'' do begin while Rims[I] = Copy(S, 1, Length(Rims[I]) ) do begin S := Copy( S, 1+Length(Rims[I]), 255); N := N + Arab[I] end; I:=I+1 end; Rim2Arab := N end; begin WriteLn('Перевод из арабских цифр в римские. 1999 B_SA'); { Write('Введите число для преобразования:'); ReadLn(N);} for NI := 26 to 46 do WriteLn(NI,' = ',Arab2Rim(NI),' обратно ', Rim2Arab( Arab2Rim(NI) )); end. Функция преобразования арабского числа в римское на Pascal[8] function Arab2Roman(arab:integer):string; var i:integer; d:integer; arab_str:string; arab_len:integer; begin Result := ''; arab_str := IntToStr(arab); arab_len := Length(arab_str); for i := 0 to arab_len-1 do begin d := StrToInt(String(arab_str[arab_len-i])); if (d+1) mod 5 = 0 then Result := Copy('IXCM', 1+i, 1) + Copy('VXLCDM', i*2 + (d+1) div 5, 1) + Result else Result := Copy('VLD', 1+i, d div 5) + Copy('IIIXXXCCCMMM', 1+i*3, (d mod 5)) + Result; end; end;

Отличительной особенностью данного алгоритма является то, что в нём не используются массивы (если, конечно, не считать строку массивом символов).

Функция преобразования арабского числа в римское на BASIC (самый краткий код)[9] 10 INPUT "АРАБСКОЕ ЧИСЛО: "; А$ 20 FOR I=0 TO LEN(A$)-1 30 X=VAL(MID$(A$,LEN(A$)-I,1)) 40 IF X=4 OR X=9 THEN B$=MID$("IXCM",I+1,1)+MID$("VXLCDM",I*2+(X+1)/5,1)+B$ 50 IF X4 AND X Функция преобразования арабского числа (в данном случае 1999) в римское на XPath string-join( for $num in (1999) return ( ('','M','MM','MMM')[($num idiv 1000) mod 10+1], ('','C','CC','CCC','CD','D','DC','DCC','DCCC','CM')[($num idiv 100) mod 10+1], ('','X','XX','XXX','XL','L','LX','LXX','LXXX','XC')[($num idiv 10) mod 10+1], ('','I','II','III','IV','V','VI','VII','VIII','IX')[$num mod 10+1] ), '') Функция преобразования арабского числа (в данном случае 1999) в римское на Perl use strict; use warnings; my $n = 1999; my $nums = [ ['', qw(I II III IV V VI VII VIII IX) ], ['', qw(X XX XXX XL L LX LXX LXXX XC) ], ['', qw(C CC CCC CD D DC DCC DCCC CM) ], ['', qw(M MM MMM) ] ]; my $i = 0; my @res = (); push @res, ($nums->[$i++][ ($n % 10, $n = int($n / 10))[0] ]) for 0 .. 3; print reverse @res; Класс для преобразования арабского числа (от 1 до 3999) в римское на Java import java.util.*; public class IntegerConverter { public static String intToRoman(int number) { if (number >= 4000 || number iterator = units.descendingKeySet().iterator(); while (iterator.hasNext()) { Integer key = iterator.next(); while (number >= key) { number -= key; result.append(units.get(key)); } } return result.toString(); } private static final NavigableMap units; static { NavigableMap initMap = new TreeMap<>(); initMap.put(1000, "M"); initMap.put(900, "CM"); initMap.put(500, "D"); initMap.put(400, "CD"); initMap.put(100, "C"); initMap.put(90, "XC"); initMap.put(50, "L"); initMap.put(40, "XL"); initMap.put(10, "X"); initMap.put(9, "IX"); initMap.put(5, "V"); initMap.put(4, "IV"); initMap.put(1, "I"); units = Collections.unmodifiableNavigableMap(initMap); } } Extension class для преобразования римского числа в арабское и обратно, на CSharp /// /// Класс предназначен для преобразований арабских чисел в римские и обратно /// /// /// Класс изначально содержит алфавит римских чисел, способных определять арабские числа от 1 до 39999 /// Если необходимо расширить диапазон, то можно определить дополнительные обозначения для римских чисел, используя /// поле БазовыеРимскиеЧисла public static class РимскоеЧисло { /// /// Алфавит базовых римских чисел /// Алфавит построен в виде словаря. Ключом словаря является арабское число (int), значением - соответствующее ему /// римское число (string) /// /// /// Содержит римское обозначения арабских чисел 1*,4*,5*,9* - где "*"представляет собой 0...N нулей /// При создании содержит в себе обозначение чисел от 1 до 10000 (I...ↂ) Так как в римском числе один символ не может /// встречаться более трех раз, то изначально можно преобразовать в римский формат числа от 1 до 39999. /// Если Вы хотите иметь возможность работать с большим количеством римских чисел, то вы должны добавить в список /// дополнительные обозначения начиная с 40000 не пропуская элементы 1*,4*,5*,9*. /// public static SortedList БазовыеРимскиеЧисла { get; set; } static РимскоеЧисло() { БазовыеРимскиеЧисла = new SortedList(17); БазовыеРимскиеЧисла.Add(1, "I"); БазовыеРимскиеЧисла.Add(4, "IV"); БазовыеРимскиеЧисла.Add(5, "V"); БазовыеРимскиеЧисла.Add(9, "IX"); БазовыеРимскиеЧисла.Add(10, "X"); БазовыеРимскиеЧисла.Add(40, "XL"); БазовыеРимскиеЧисла.Add(50, "L"); БазовыеРимскиеЧисла.Add(90, "XC"); БазовыеРимскиеЧисла.Add(100, "C"); БазовыеРимскиеЧисла.Add(400, "CD"); БазовыеРимскиеЧисла.Add(500, "D"); БазовыеРимскиеЧисла.Add(900, "CM"); БазовыеРимскиеЧисла.Add(1000, "M"); БазовыеРимскиеЧисла.Add(4000, "Mↁ"); БазовыеРимскиеЧисла.Add(5000, "ↁ"); БазовыеРимскиеЧисла.Add(9000, "Mↂ"); БазовыеРимскиеЧисла.Add(10000, "ↂ"); } /// /// Рассчитывает максимально возможное римское число для текущего алфавита римских чисел. /// /// Максимально возможное римское число public static uint МаксимальноеРимскоеЧисло() { int последнееЧисло = БазовыеРимскиеЧисла.Keys.Last(); int числоБезНулей = int.Parse(последнееЧисло.ToString().Replace('0','\0')); int предварительное=0; switch (числоБезНулей) { case 1: предварительное = последнееЧисло * 4 - 1; break; case 4: case 9: предварительное = последнееЧисло; break; case 5: предварительное = последнееЧисло + последнееЧисло / 5 * 3; break; default: break; } return uint.Parse(предварительное.ToString().Replace('0', '9'));; } /// /// Конвентирует целое число в римское число /// /// Арабское число, которое необходимо преобразовать в римскую запись /// Генерируется когда в качестве параметра передано число равное "0" /// или число большее чем максимальная римское число. /// Строку, представляющую собой римской число public static string АрабскоеВРимское(this int числоАраб) { StringBuilder числоРимское = new StringBuilder(); //Исключаем знак "-" из арабского числа и делаем его первым символом римского числа if (числоАраб < 0) { числоРимское.Append("-"); числоАраб = -числоАраб; } if (числоАраб == 0) throw new ArgumentOutOfRangeException("числоАраб", числоАраб, "Недопустимое значение аргумента: римские числа не могут быть равными\"0\""); else if (числоАраб > МаксимальноеРимскоеЧисло()) throw new ArgumentOutOfRangeException("числоАраб", числоАраб, string.Format("Недопустимое значение аргумента: невозможно задать римское число большее чем {0}", МаксимальноеРимскоеЧисло())); //Раскладываем арабское число на составляющие его римские числа и объединяем их в одну строку var необходимыеБазовыеРимскиеЧисла = from к in БазовыеРимскиеЧисла.Keys where к = 1) { числоАраб -= тек; числоРимское.Append(БазовыеРимскиеЧисла[тек]); } } return числоРимское.ToString(); } /// /// Конвентирует римское число в арабское /// /// Римское число, которое необходимо преобразовать в тип int /// Генерируется когда в качестве параметра передано число не являющееся римским /// Целое число, представляющее собой арабскую запись римского числа public static int РимскоеВАрабское(this string числоРимское) { int числоАраб = 0; sbyte отрицательное = 1; string рим = числоРимское.Trim(); if (рим[0] == '-') { отрицательное = -1; рим = рим.Substring(1); } StringBuilder шаблонРимскогоНомера = new StringBuilder(); foreach (int к in БазовыеРимскиеЧисла.Keys) { int индекс = БазовыеРимскиеЧисла.Keys.IndexOf(к); string квантификатор="?"; if (индекс == 0 || (индекс % 4) == 0) квантификатор="{0,3}"; шаблонРимскогоНомера.Insert(0, string.Format("(?({1}){2})?", к.ToString(), БазовыеРимскиеЧисла[к], квантификатор)); } //Игнорировать регистр + соответствие должно начинаться с начала строки шаблонРимскогоНомера.Insert(0, "(?i)^"); //Соответствие должно обнаруживаться в конце строки шаблонРимскогоНомера.Append("$"); //Упрощенная проверка. Не проверяет таких ошибок как IVII if (!Regex.IsMatch(рим, шаблонРимскогоНомера.ToString())) throw new FormatException(string.Format("Текст \"{0}\" не является римским числом",числоРимское)); Match число = Regex.Match(рим, шаблонРимскогоНомера.ToString()); foreach (int к in БазовыеРимскиеЧисла.Keys) { числоАраб += число.Groups[к.ToString()].Length / БазовыеРимскиеЧисла[к].Length * к; } return числоАраб * отрицательное; } }

ru.wikipedia.org

Римские цифры это:

Римские цифры Часы-куранты Спасской башни Системы счисления в культуре Индо-арабская система счисленияВосточноазиатские системы счисленияАлфавитные системы счисленияДругие системыПозиционные системы счисления Смешанные системы счисления Непозиционные системы счисления
Арабская
Индийские
Тамильская
Бирманская
Кхмерская
Лаоская
Монгольская
Тайская
Китайская
Японская
Сучжоу
Корейская
Вьетнамская
Счётные палочки
Абджадия
Армянская
Ариабхата
Кириллическая
Греческая
Эфиопская
Еврейская
Катапаяди
Вавилонская
Египетская
Этрусская
Римская
Аттическая
Кипу
Майская
Десятичная система счисления (10)
2, 3, 4, 5, 6, 7, 8, 9, 12, 16, 20, 60
Нега-позиционная система счисления
Симметричная система счисления
Фибоначчиева система счисления
Единичная (унарная) система счисления
Список систем счисления

Римские цифры — цифры, использовавшиеся древними римлянами в своей непозиционной системе счисления.

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

Римские цифры появились за 500 лет до нашей эры у этрусков.

Содержание

  • 1 Цифры
  • 2 Примеры
  • 3 Применение
  • 4 Юникод
  • 5 Регулярные выражения
  • 6 Преобразование
  • 7 Примечания
  • 8 См. также

Цифры

римские цифры

1 I лат. unus
5 V лат. quinque
10 X лат. decem
50 L лат. quinquaginta
100 C лат. centum
500 D лат. quingenti
1000 M лат. mille

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

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

Mы Dаем Cоветы Lишь Xорошо Vоспитанным Iндивидуумам

Соответственно M, D, C, L, X, V, I

Примеры

Число Римское обозначение Примечание
0 -
4 IV до XIX века — IIII
8 VIII
9 IX
31 XXXI
46 XLVI
99 XCIX
583 DLXXXIII
888 DCCCLXXXVIII от 1 до 1000 — самое длинное
1668 MDCLXVIII
1989 MCMLXXXIX
2010 MMX
2011 MMXI
2012 MMXII
3999 MMMCMXCIX
5000
10 000

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

При этом некоторые из цифр (I, X, C, M) могут повторяться, но не более трёх раз; таким образом, с их помощью можно записать любое целое число не более 3999 (MMMCMXCIX). В ранние периоды существовали знаки для обозначения бо́льших цифр — 5000, 10 000, 50 000 и 100 000[источник не указан 683 дня] (тогда максимальное число по упомянутому правилу равно 399 999). При записи чисел в римской системе счисления меньшая цифра может стоять справа от большей; в этом случае она прибавляется к ней. Например, число 283 по-римски записывается как CCLXXXIII, то есть 100+100+50+30+3=283. Здесь цифра, изображающая сотню, повторена два раза, а цифры, изображающие соответственно десяток и единицу, повторены по три раза.

Пример: число 1988. Одна тысяча M, девять сотен CM, восемь десятков LXXX, восемь единиц VIII. Запишем их вместе: MCMLXXXVIII.

Довольно часто, чтобы выделить числа в тексте, над ними рисовали черту: LXIV. Иногда черту рисовали и сверху, и снизу: XXXII — в частности, так принято выделять римские цифры в русском рукописном тексте (в типографском наборе это не используют из-за технической сложности). У других авторов черта сверху могла обозначать увеличение значения цифры в 1000 раз: VM = 6000.

Часы марки Tissot с традиционным написанием «IIII»

Повсеместно записывать число «четыре» как «IV» стали только в XIX веке, до этого наиболее часто употреблялась запись «IIII». Однако запись «IV» можно встретить уже в документах манускрипта «Forme of Cury», датируемых 1390 годом. На циферблатах часов в большинстве случаев традиционно используется «IIII» вместо «IV», главным образом, по эстетическим соображениям: такое написание обеспечивает визуальную симметрию с цифрами «VIII» на противоположной стороне, а перевёрнутую «IV» прочесть труднее, чем «IIII».

Меньшая цифра может быть записана и слева от большей, тогда её следует вычесть из большей. В этом случае повторения меньшей цифры не допускаются. По-римски число 94 будет XCIV=100-10+5-1=94 — так называемое «правило вычитания» (появилось в эпоху поздней античности, а до этого римляне писали число 4 как IIII, а число 40 — как XXXX). Существует шесть вариантов использования «правила вычитания»:

  • IV = 4
  • IX = 9
  • XL = 40
  • XC = 90
  • CD = 400
  • CM = 900

Необходимо отметить, что другие способы «вычитания» не допустимы; так, число 99 должно быть записано как XCIX, но не как IC. Однако, в наши дни в некоторых случаях используется и упрощенная запись римских чисел: например, в программе Microsoft Excel при преобразовании арабских цифр в римские при помощи функции «РИМСКОЕ()» можно использовать несколько видов представления чисел, от классического до сильно упрощенного (так, число 499 может быть записано как CDXCIX, LDVLIV, XDIX, VDIV или ID). Упрощение состоит в том, что для уменьшения какой-либо цифры слева от неё может писаться любая другая цифра:

  • 999. Тысяча (M), вычтем 1 (I), получим 999 (IM) вместо CMXCIX. Следствие: 1999 — MIM вместо MCMXCIX
  • 95. Сто (C), вычтем 5 (V), получим 95 (VC) вместо XCV
  • 1950: Тысяча (M), вычтем 50 (L), получим 950 (LM). Следствие: 1950 — MLM вместо MCML

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

CXXIIICXXIII

А миллион как I, но только не с одной, а с двумя чертами во главе: I

Применение

Автограф Б. Н. Ельцина 10 ноября 1988 года. Месяц указан римскими цифрами.

В русском языке римские цифры используются в следующих случаях:

  • Номер века или тысячелетия: XIX век, II тысячелетие до н. э.
  • Порядковый номер монарха: Карл V, Екатерина II.
  • Номер тома в многотомной книге (иногда — номера частей книги, разделов или глав).
  • В некоторых изданиях — номера листов с предисловием к книге, чтобы не исправлять ссылки внутри основного текста при изменении предисловия.
  • Маркировка циферблатов часов «под старину».
  • Иные важные события или пункты списка, например: V постулат Евклида, II мировая война, XX съезд КПСС, Игры XXII Олимпиады и т. п.
  • Валентность химических элементов.
  • Порядковый номер ступени в звукоряде.

Римские цифры широко употреблялись в СССР при указании даты для обозначения месяца года: 11/III-85 или 9.XI.89. Для указания дат жизни и смерти на надгробиях часто использовался особый формат, где месяц года также обозначался римскими цифрами. С переходом на компьютерную обработку информации форматы даты, основанные на римских цифрах, практически вышли из употребления.

В других языках сфера применения римских цифр может иметь особенности, например, в западных странах римскими цифрами иногда записывается номер года.


Если разложить цифры графически, то получается следующее:

I I V I I X I I V I I X I I V I I X I I V I I X I I V I I L I I V I I X
1 I
2 I
3 I I
4 I V
5 V
6 V I
7 V I
8 V I I
9 I X
10 X
11 X I
12 X I
13 X I I
14 X I V
15 X V
16 X V I
17 X V I
18 X V I I
19 X I X
20 X X
21 X X I
22 X X I
23 X X I I
24 X X I V
25 X X V
26 X X V I
27 X X V I
28 X X V I I
29 X X I X
30 X X X
31 X X X I
32 X X X I
33 X X X I I
34 X X X I V
35 X X X V
36 X X X V I
37 X X X V I
38 X X X V I I
39 X X X I X
40 X L
41 X L I
42 X L I
43 X L I I
44 X L I V
45 X L V
46 X L V I
47 X L V I
48 X L V I I
49 X L I X
50 L и т. д. до MMMCMXCIX (3999)

Юникод

Стандарт Юникода рекомендует использовать для представления римских цифр обычные латинские буквы.[1] Тем не менее стандарт включает также специальные символы для римских цифр как часть Числовых форм (англ. Number Forms)[2] в области знаков с кодами с U+2160 по U+2188. Например, MCMLXXXVIII может быть представлено в форме ⅯⅭⅯⅬⅩⅩⅩⅧ. Этот диапазон включает как строчные, так и прописные цифры от 1 (Ⅰ или I) до 12 (Ⅻ или XII), в том числе и комбинированные глифы для составных чисел, таких как 8 (Ⅷ или VIII), главным образом для обеспечения совместимости с восточноазиатскими наборами символов в таких промышленных стандартах, как JIS X 0213, где эти символы определены. Комбинированные глифы используются для представления чисел, которые ранее составлялись из отдельных символов (например, Ⅻ вместо его представления как Ⅹ и Ⅱ). В дополнение к этому, глифы существуют для архаичных[2] форм записи чисел 1000, 5000, 10 000, большой обратной C (Ɔ), поздней формы записи 6 (ↅ, похожей на греческую стигму: Ϛ), ранней формы записи числа 50 (ↆ, похожей на стрелку, указывающую вниз Шаблон:Вмвауыаируфктр5ке4фуиUnicode[3]), 50 000, и 100 000. Следует отметить, что маленькая обратная c, ↄ не включена в символы римских цифр, но включена в стандарт Юникод как прописная клавдиева буква Ↄ.

Римские цифры в Юникод Код 0 1 2 3 4 5 6 7 8 9 A B C D E F Значение[4] 1 2 3 4 5 6 7 8 9 10 11 12 50 100 500 1 000 U+2160 U+2170 Значение 1 000 5 000 10 000 - - 6 50 50 000 100 000 U+2160! U+2180

2160

2161

2162

2163

2164

2165

2166

2167

2168

2169

216A

216B

216C

216D

216E

216F

2170

2171

2172

2173

2174

2175

2176

2177

2178

2179

217A

217B

217C

217D

217E

217F

2180

2181

2182

Отображение всех этих символов требует наличия программного обеспечения, поддерживающего стандарт Юникод, и шрифта, содержащего соответствующие этим символам глифы.

Регулярные выражения

Регулярное выражение для проверки римских цифр — '^(?i)M{0,3}(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])$'. В языке Perl для поиска римских цифр в строке можно использовать регулярное выражение 'm/((?i)M{0,3}(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(I[VX]|V?I{0,3}))/g'.

Преобразование

Для преобразования чисел, записанных арабскими цифрами, в римские, используются специальные функции. Например, в русской версии Microsoft Excel для этого существует функция РИМСКОЕ(аргумент), в английской версии Microsoft Excel и в любой версии OpenOffice.org Calc эта функция называется ROMAN(аргумент).

Функции преобразования на JavaScript var arab = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000]; var roman = ['I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M']; function arabToRoman(number) { if(!number) return ''; var ret = ''; var i = arab.length - 1; while(number > 0) { if(number >= arab[i]) { ret += roman[i]; number -= arab[i]; } else { i--; } } return ret; } function romanToArab(str) { str = str.toUpperCase(); var ret = 0; var i = arab.length - 1; var pos = 0; while(i >= 0 && pos < str.length ) { if(str.substr(pos, roman[i].length) == roman[i]) { ret += arab[i]; pos += roman[i].length; } else { i--; } } return ret; } Аналогичные функции на Си (C89): #include const int arabar[] = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000}; const char *romanar[] = { "I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"}; char *arab2roman(unsigned short int arab) { static char roman[80]; const int m = sizeof(arabar)/sizeof(int)-1, arabmax=arabar[m]; const char romanmax=romanar[m][0]; int i, n; if(!arab) { *roman=0; return roman; } i=0; while(arab>arabmax) { roman[i++] = romanmax; arab -= arabmax; } n=m; while(arab > 0) { if(arab >= arabar[n]) { roman[i++] = romanar[n][0]; if(n&1) roman[i++] = romanar[n][1]; arab -= arabar[n]; } else n--; } roman[i]=0; return roman; } unsigned short int roman2arab(char *roman) { const int m = sizeof(arabar)/sizeof(int)-1; unsigned short int arab; int len, n, i, pir; len=strlen(roman); arab=0; n=m; i=0; while(n >= 0 && i < len) { pir=n&1; if(roman[i] == romanar[n][0] && (!pir || roman[i+1] == romanar[n][1])) { arab += arabar[n]; i += 1+pir; } else n--; } return arab; } Программа перевода арабских цифр в римские и наоборот[5] type str2 = string[2]; const Rims : array[1..14] of str2 = ('M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I',' '); Arab : array[1..14] of integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1, 0); var N, NI, I, J : integer; S : string; function Arab2Rim(N : integer) : string; var S : string; I : integer; begin S := ''; I:=1; while N > 0 do begin while Arab[I]'' do begin while Rims[I] = Copy(S, 1, Length(Rims[I]) ) do begin S := Copy( S, 1+Length(Rims[I]), 255); N := N + Arab[I] end; I:=I+1 end; Rim2Arab := N end; begin WriteLn('Перевод из арабских цифр в римские. 1999 B_SA'); { Write('Введите число для преобразования:'); ReadLn(N);} for NI := 26 to 46 do WriteLn(NI,' = ',Arab2Rim(NI),' обратно ', Rim2Arab( Arab2Rim(NI) )); end. Функция преобразования арабского числа в римское на Pascal[6] function Arab2Roman(arab:integer):string; var i:integer; d:integer; arab_str:string; arab_len:integer; begin Result := ''; arab_str := IntToStr(arab); arab_len := Length(arab_str); for i := 0 to arab_len-1 do begin d := StrToInt(String(arab_str[arab_len-i])); if (d+1) mod 5 = 0 then Result := Copy('IXCM', 1+i, 1) + Copy('VXLCDM', i*2 + (d+1) div 5, 1) + Result else Result := Copy('VLD', 1+i, d div 5) + Copy('IIIXXXCCCMMM', 1+i*3, d mod 5) + Result; end; end;

Отличительной особенностью данного алгоритма является то, что в нём не используются массивы (если, конечно, не считать строку массивом символов).

Функция преобразования арабского числа в римское на BASIC (самый краткий код)[7] 10 INPUT "АРАБСКОЕ ЧИСЛО: "; А$ 20 FOR I=0 TO LEN(A$)-1 30 X=VAL(MID$(A$,LEN(A$)-I,1)) 40 IF X=4 OR X=9 THEN B$=MID$("IXCM",I+1,1)+MID$("VXLCDM",I*2+(X+1)/5,1)+B$ 50 IF X4 AND X Функция преобразования арабского числа (в данном случае 1999) в римское на XPath string-join( for $num in (1999) return ( ('','M','MM','MMM')[($num idiv 1000) mod 10+1], ('','C','CC','CCC','CD','D','DC','DCC','DCCC','CM')[($num idiv 100) mod 10+1], ('','X','XX','XXX','XL','L','LX','LXX','LXXX','XC')[($num idiv 10) mod 10+1], ('','I','II','III','IV','V','VI','VII','VIII','IX')[$num mod 10+1] ), '') Функция преобразования арабского числа (в данном случае 1999) в римское на Perl use strict; use warnings; my $n = 1999; my $nums = [ ['', qw(I II III IV V VI VII VIII IX) ], ['', qw(X XX XXX XL L LX LXX LXXX XC) ], ['', qw(C CC CCC CD D DC DCC DCCC CM) ], ['', qw(M MM MMM) ] ]; my $i = 0; my @res = (); push @res, ($nums->[$i++][ ($n % 10, $n = int($n / 10))[0] ]) for 0 .. 3; print reverse @res; Класс для преобразования арабского числа (от 1 до 3999) в римское на Java class ArabRome { private int[] arabBase = {1000, 500, 100, 50, 10, 5, 1}; private String[] romeBase = {"M", "D", "C", "L", "X", "V", "I"}; public String ArabToRome(int arab) { int result = 0; int remainder = 0; String resultRome = ""; for(short i = 0; i0 && result=4 && result Extension class для преобразования римского числа в арабское и обратно, на CSharp /// /// Класс предназначен для преобразований арабских чисел в римские и обратно /// /// /// Класс изначально содержит алфавит римских чисел, способных определять арабские числа от 1 до 39999 /// Если необходимо расширить диапазон, то можно определить дополнительные обозначения для римских чисел, используя /// поле БазовыеРимскиеЧисла public static class РимскоеЧисло { /// /// Алфавит базовых римских чисел /// Алфавит построен в виде словаря. Ключем словаря является арабское число (int), значением - соответствующее ему /// римское число (string) /// /// /// Содержит римское обозначения арабских чисел 1*,4*,5*,9* - где "*"представляет собой 0...N нулей /// При создании содержит в себе обозначение чисел от 1 до 10000 (I...ↂ) Так как в римском числе один символ не может /// встречаться более трех раз, то изначально можно преобразовать в римский формат числа от 1 до 39999. /// Если Вы хотите иметь возможность работать с большим количеством римских чисел, то вы должны добавить в список /// дополнительные обозначения начиная с 40000 не пропуская элементы 1*,4*,5*,9*. /// public static SortedList БазовыеРимскиеЧисла { get; set; } static РимскоеЧисло() { БазовыеРимскиеЧисла = new SortedList(17); БазовыеРимскиеЧисла.Add(1, "I"); БазовыеРимскиеЧисла.Add(4, "IV"); БазовыеРимскиеЧисла.Add(5, "V"); БазовыеРимскиеЧисла.Add(9, "IX"); БазовыеРимскиеЧисла.Add(10, "X"); БазовыеРимскиеЧисла.Add(40, "XL"); БазовыеРимскиеЧисла.Add(50, "L"); БазовыеРимскиеЧисла.Add(90, "XC"); БазовыеРимскиеЧисла.Add(100, "C"); БазовыеРимскиеЧисла.Add(400, "CD"); БазовыеРимскиеЧисла.Add(500, "D"); БазовыеРимскиеЧисла.Add(900, "CM"); БазовыеРимскиеЧисла.Add(1000, "M"); БазовыеРимскиеЧисла.Add(4000, "Mↁ"); БазовыеРимскиеЧисла.Add(5000, "ↁ"); БазовыеРимскиеЧисла.Add(9000, "Mↂ"); БазовыеРимскиеЧисла.Add(10000, "ↂ"); } /// /// Рассчитывает максимально возможное римское число для текущего алфавита римских чисел. /// /// Максимально возможное римское число public static uint МаксимальноеРимскоеЧисло() { int последнееЧисло = БазовыеРимскиеЧисла.Keys.Last(); int числоБезНулей = int.Parse(последнееЧисло.ToString().Replace('0','\0')); int предварительное=0; switch (числоБезНулей) { case 1: предварительное = последнееЧисло * 4 - 1; break; case 4: case 9: предварительное = последнееЧисло; break; case 5: предварительное = последнееЧисло + последнееЧисло / 5 * 3; break; default: break; } return uint.Parse(предварительное.ToString().Replace('0', '9'));; } /// /// Конвентирует целое число в римское число /// /// Арабское число, которое необходимо преобразовать в римскую запись /// Генерируется когда в качестве параметра передано число равное "0" /// или число большее чем максимальная римское число. /// Строку, представляющую собой римской число public static string АрабскоеВРимское(this int числоАраб) { StringBuilder числоРимское = new StringBuilder(); //Исключаем знак "-" из арабского числа и делаем его первым символом римского числа if (числоАраб < 0) { числоРимское.Append("-"); числоАраб = -числоАраб; } if (числоАраб == 0) throw new ArgumentOutOfRangeException("числоАраб", числоАраб, "Недопустимое значение аргумента: римские числа не могут быть равными\"0\""); else if (числоАраб > МаксимальноеРимскоеЧисло()) throw new ArgumentOutOfRangeException("числоАраб", числоАраб, string.Format("Недопустимое значение аргумента: невозможно задать римское число большее чем {0}", МаксимальноеРимскоеЧисло())); //Раскладываем арабское число на составляющие его римские числа и объединяем их в одну строку var необходимыеБазовыеРимскиеЧисла = from к in БазовыеРимскиеЧисла.Keys where к = 1) { числоАраб -= тек; числоРимское.Append(БазовыеРимскиеЧисла[тек]); } } return числоРимское.ToString(); } /// /// Конвентирует римское число в арабское /// /// Римское число, которое необходимо преобразовать в тип int /// Генерируется когда в качестве параметра передано число не являющееся римским /// Целое число, представляющее собой арабскую запись римского числа public static int РимскоеВАрабское(this string числоРимское) { int числоАраб = 0; sbyte отрицательное = 1; string рим = числоРимское.Trim(); if (рим[0] == '-') { отрицательное = -1; рим = рим.Substring(1); } StringBuilder шаблонРимскогоНомера = new StringBuilder(); foreach (int к in БазовыеРимскиеЧисла.Keys) { int индекс = БазовыеРимскиеЧисла.Keys.IndexOf(к); string квантификатор="?"; if (индекс == 0 || (индекс % 4) == 0) квантификатор="{0,3}"; шаблонРимскогоНомера.Insert(0, string.Format("(?({1}){2})?", к.ToString(), БазовыеРимскиеЧисла[к], квантификатор)); } //Игнорировать регистр + соответствие должно начинаться с начала строки шаблонРимскогоНомера.Insert(0, "(?i)^"); //Соответствие должно обнаруживаться в конце строки шаблонРимскогоНомера.Append("$"); //Упрощенная проверка. Не проверяет таких ошибок как IVII if (!Regex.IsMatch(рим, шаблонРимскогоНомера.ToString())) throw new FormatException(string.Format("Текст \"{0}\" не является римским числом",числоРимское)); Match число = Regex.Match(рим, шаблонРимскогоНомера.ToString()); foreach (int к in БазовыеРимскиеЧисла.Keys) { числоАраб += число.Groups[к.ToString()].Length / БазовыеРимскиеЧисла[к].Length * к; } return числоАраб * отрицательное; } }

Примечания

  1. Unicode Standard, 15.3
  2. 1 2 Unicode Number Forms
  3. Perry, David J. Proposal to Add Additional Ancient Roman Characters to UCS.
  4. Для первых двух строк
  5. "Наука и жизнь" N12 1986 cтр.95, В.Птицын, г.Москва
  6. Автор - Кузнецов Евгений А.
  7. Автор - Кузнецов Евгений А., 1992 год

См. также

  • Символы древнеримских денежных и весовых единиц
Техническое примечание: Из-за технических ограничений некоторые браузеры не могут показывать спецсимволы, используемые в этой статье. Такие символы могут быть отображены в виде квадратиков, вопросительных знаков или других бессмысленных символов в зависимости от вашего веб-браузера, операционной системы и набора установленных шрифтов. Даже если ваш браузер способен интерпретировать UTF-8 и вы установили шрифт, поддерживающий большой диапазон Юникода, например Code2000, Arial Unicode MS, Lucida Sans Unicode или один из свободных шрифтов Unicode, — вам, возможно, придётся использовать другой браузер, поскольку возможности браузеров в этой области часто различаются.
Wiki letter w.svg Для улучшения этой статьи желательно?:
  • Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
  • Проставить шаблон-карточку, который существует для предмета статьи. Пример использования шаблона есть в статьях на похожую тематику.
Категории:
  • Цифры
  • Системы счисления

Wikimedia Foundation. 2010.

dic.academic.ru

Что означают римские буквы L C D M

N

Это цифры ! -в римской системе нумерации, основанной на использовании латинских букв, стала одной из веских причин замены ее на более удобную в этом плане десятичную систему цифр
По возрастанию эти буквы обозначают следующее целые числа: I – один, V - пять, X - десять, L - пятьдесят, C - сто, D - пятьсот, M - тысяча.
Римские цифры (Roman numerals)
Римская система нумерации с помощью букв была распространена в Европе на протяжении двух тысяч лет. Только в позднем средневековье ее сменила более удобная для вычислений десятичная система цифр, заимствованная у арабов. Но, до сих пор римскими цифрами обозначаются даты на монументах, время на часах и (в англо-американской типографической традиции) страницы книжных предисловий. Кроме того, в русском языке римскими цифрами принято обозначать порядковые числительные.
Для обозначения чисел применялось 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 и т. д.
Как пишутся римские цифры? -//elhow.ru/ucheba/matematika/kak-pishutsja-rimskie-cifry
.437000.ru/info/rim.php
__________________________
Латинский алфавит обособился примерно в VII веке до н. э. и первоначально включал только 21 букву: A, B, C, D, E, F, Z, H, I, K, L, M, N, O, P, Q, R, S, T, V и X.
://ladyretryka.ru/?p=10980

Какое число обозначает римская цифра M?

Какое число обозначает римская цифра М?

Алсу - ш

На подобный вопрос я уже отвечала (см. здесь). Вкратце хочу дать ответ и на этот.

Немного повторюсь.

Римские цифры, а их всего лишь 7, запомнить нетрудно. Вот буквенные обозначения этих цифр в порядке убывания: M, D, C, L, X, V, I:

Как видим, римская цифра, которая представляет собой заглавную букву М, обозначает число 1000.

Теперь приведем примеры чисел, которые записаны римскими цифрами:

А теперь сами напишем:

Номер нынешнего года 2015, к примеру, запишется так: ММХV

1941 - МСМХХХХI

1945 - МСМХХХХV

2987 - MMCMLXXXVII

2001 - MMI

Zolotynka

Если римская цифра М стоит одна, сама по себе, то ее значение будет равно 1000.

Но: если перед М будет стоять меньшее число, как, например, в этом примере СM, то это будет значить: 1000-100=900.

Если С будет стоять после М, значит нужно складывать, следовательно значение - 1000+100=1010.

С, как мы помним, обозначает сотню.

Главные правила: нельзя ставить более одного меньшего числа перед большим числом для вычитания. Так, IIV не означает 3.

Кроме того, следует разделять десятки, сотни и тысячи как отдельные элементы (меньшее число не может отличаться от большего более чем в 10 раз). Это означает, что 99 - это XCIX, 90 + 9, но никогда не может быть написано как IC. Аналогично, 999 не может быть IM, а 1999 не может быть MIM и так далее.

Natashau

Мы привыкли пользоваться арабскими цифрами. Но еще существуют и широко используются и римские, которым уже почти две с половиной тысячи лет. Римские цифры представлены в виде буквенного обозначения. Таких букв всего семь: I , V , X , L , C , D , M. Определенное их расположение и обозначает число. Если эти цифры располагаются отдельно от остальных, то имеют следующие значения: I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000.

Красивая поляна

Римская цифра M (она же буква) означает число 1000.

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

В арабском же используется 10 знаков для обозначения цифр и ими можно написать любое число без математических действий.

Simpl

Латинская буква М в написании римских чисел означает "тысяча", от латинского mille..

И сейчас эту приставку широко применяют, например промилле - буквально "от тысячи", а слово "миллион" тоже произошло от туда же, буквально переводится "огромная тысяча", "тысяща", причём интересно как это слово появилось, но это уже другая история..

Афанасий44

Римские цифры сейчас мало где применяются, их вытеснели более удобные арабские. В основном для названия столетий их применяют, например, V век, XII век, ну и ещё в редких случаях.

Буквой M римляне обозначали тысячу. Две рядом стоящие буквы MM значат две тысячи, MMM три тысячи, а дальше ещё сложнее и веселее.

Moreljuba

Римская цифра М, конечно, нам привычна как буква, но в римской системе исчисления это всё же цифра. Так вот она означает именно тысячу. а берёт своё начало это римская цифра от такого латинского слова как mille.

Людмила 1986

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

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

Пчела жужа

Римские L, С, D, M - являются не такими распространёнными, как остальные, М означает число 1000, ММ означает 2000, а МММ означает 3000.

Например год 2017 будет римскими цифрами обозначаться MMXVII, 2018 будет римскими цифрами MMXVIII.

bolshoyvopros.ru

Читайте также