Римские цифры в арабские php

Из Басры в Рим. Преобразовываем арабские числа в римские

Доброе время суток, Хабраюзер.

Разрабатывая в основном для платформы J2ME, я всегда старался вносить какие то изюминки в свои проекты. Так, однажды, мне понадобилось выделить пункты меню.

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

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

В Википедии нашлась статья с описанием Римской СС, и вскоре я набросал алгоритм перевода из арабских чисел в римские.

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

Ноль отсутствует вообще, поэтому будем использовать пустое значение.

Итак, сам алгоритм достаточно прост:

1. Выделяем (если есть) количество целых тысяч. Полученное значение позволить сгенерировать строку с n количеством «M» (читаем, n*1000).
Пример: 2012 после первого пункта даст «MM»

2. Получаем остаток после деления на 1000, чтобы выделить в дальнейшем следующие значения.

3. Выделяем (если возможно), целые 500. При этом учитываем что если полученное значение равно 4 (5+4=9), то следует записывать как значение 1000-100, что в римский СС равнозначно «CM».
Пример: 1887 после этого пункта даст нам «MD».
1945 соответственно «MCM».

4. Получаем остаток от деления на 500.

5. Делим на 100 чтобы выделить целые сотни и складываем к предыдущему результату. Учитываем что если получили 4, что равнозначно 400, то записываем как 500-100, то есть «CD».
Пример: 1709 даст после этого шага «MDCCC».

6. Получаем остаток от деления на 100.

7. Выделяем из него целые пол сотни. Если значение будет равно 4 (то есть 90), то записываем как 100-10, что равно «XC». Иначе прибавляем к строке «L»
Пример: 1986 после всего выдаст нам «MCML».

8. Выделяем остаток от 50.

9. Выделяем целое количество десятков и складываем к строке n раз символ «X». При этом учитываем что 40 пишется как 50-10, то есть «XL».
Пример: 1986 после всего выдаст нам «MCMLXXX».

10. Получаем остаток от деления на 10. Этот шаг отличается от других тем, что можно сразу приравнять остаток к его эквиваленту. 1=I, 7=VII и так далее.

После перебора числа этим алгоритмом мы получаем примерно такое:
2012 == MMXII
Ниже исходник на Java, реализующий алгоритм.

Источник

Как преобразовать целое число в римское число в PHP

Есть много вещей, о которых нужно подумать, когда вы пытаетесь преобразовать число в его римское представление, поэтому давайте подумаем об основах: меньшее число перед большим числом означает вычитание, а все остальное означает сложение. Например, IV означает 4, VI ​​означает 6. Вы не должны ставить более одного меньшего числа перед большим числом, чтобы вычесть. Например, IIV не будет означать 3, поэтому вы должны разделить единицы, десятки, сотни и тысячи как отдельные элементы. Это означает, что 99 — это XCIX, 90 + 9, но никогда не должно записываться как IC. Аналогично, 999 не может быть IM, а 1999 не может быть MIM. Способ следовать этой логике в программировании (по крайней мере, в смысле числа к римскому) может быть легко понят, однако путь от римского числа к числовым значениям более сложен, поэтому объяснение здесь не будет упомянуто. статья (однако мы сделаем это с библиотекой).

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

А. Использование одной функции

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

Заметка

Большинство алгоритмов работают только в диапазоне от 1 до 4999, поэтому при большом числе сценарий завершится ошибкой.

Просто включив эту функцию в свой проект, вы сможете использовать ее следующим образом:

И нам не нужно было включать библиотеку для такой функции.

Б. Использование библиотеки

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

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

Номер римскому

Чтобы преобразовать целое число в его римское представление, используйте IntToRoman класс, создайте экземпляр и вызовите метод фильтра из него. Этот метод ожидает в качестве первого аргумента число и возвращает строку с римским номером:

Роман на номер

Чтобы преобразовать римское число в его числовое представление, используйте RomanToInt класс, создайте экземпляр и вызовите метод фильтра из него. Этот метод ожидает в качестве первого аргумента строку с римским номером и возвращает целое число с числовым значением:

Источник

Римские цифры: от 1 до 50. Как перевести арабское число в римское и обратно

Римские цифры в арабские php. Смотреть фото Римские цифры в арабские php. Смотреть картинку Римские цифры в арабские php. Картинка про Римские цифры в арабские php. Фото Римские цифры в арабские phpДоброго времени суток!

Вообще, обычно, в повседневной жизни мы используем арабские цифры (1, 2, 3 и т.д.). Они удобны, практичны, и уже давно как-то прижились 👀.

Но в определенных ситуациях, например, при обозначении веков, составлении каких-то документов, написании поэм или рассказов могут понадобиться римские цифры (I, II, III и т.д.).

Кстати, они имеют несколько интересных особенностей:

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

Римские цифры в арабские php. Смотреть фото Римские цифры в арабские php. Смотреть картинку Римские цифры в арабские php. Картинка про Римские цифры в арабские php. Фото Римские цифры в арабские php

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

От 1 до 50

АрабскиеРимские
1I
2II
3III
4IV
5V
6VI
7VII
8VIII
9IX
10X
11XI
12XII
13XIII
14XIV
15XV
16XVI
17XVII
18XVIII
19XIX
20XX
21XXI
22XXII
23XXIII
24XXIV
25XXV
26XXVI
27XXVII
28XXVIII
29XXIX
30XXX
31XXXI
32XXXII
33XXXIII
34XXXIV
35XXXV
36XXXVI
37XXXVII
38XXXVIII
39XXXIX
40XL
41XLI
42XLII
43XLIII
44XLIV
45XLV
46XLVI
47XLVII
48XLVIII
49XLIX
50L

От 10 до 100, от 100 до 3000

АрабскиеРимские
10X
20XX
30XXX
40XL
50L
60LX
70LXX
80LXXX
90XC
100C
АрабскиеРимские
50L
100C
150CL
200CC
250CCL
300CCC
350CCCL
400CD
450CDL
500D
550DL
600DC
650DCL
700DCC
750DCCL
800DCCC
850DCCCL
900CM
950CML
1000M
АрабскиеРимские
100C
200CC
300CCC
400CD
500D
600DC
700DCC
800DCCC
900CM
1000M
1100MC
1200MCC
1300MCCC
1400MCD
1500MD
1600MDC
1700MDCC
1800MDCCC
1900MCM
2000MM
2100MMC
2200MMCC
2300MMCCC
2400MMCD
2500MMD
2600MMDC
2700MMDCC
2800MMDCCC
2900MMCM
3000MMM

Перевод арабского числа в римское (и наоборот)

Разумеется вручную переводить (считая тысячи, сотни, и десятки) арабские числа в римские — занятие то еще 👀 (и вряд ли кто-то этим занимается, кроме может быть каких-нибудь математиков или историков).

Поэтому для этих целей гораздо удобнее пользоваться программами, которые могут за вас все посчитать и конвертировать. Благо, что для расчетов ничего сложнее, чем Excel или Word ненужно (да и их если нет — можно воспользоваться аналогами, в том числе и онлайн-версиями).

Способ 1 (Excel)

1) Если у вас нет Excel — можно установить его бесплатный аналог (например, Libre Office) — https://ocomp.info/chem-zamenit-word-i-excel.html#LibreOffice

2) Кроме этого, можно воспользоваться Яндекс-диском: в его арсенале так же есть онлайн-версия Excel.

Римские цифры в арабские php. Смотреть фото Римские цифры в арабские php. Смотреть картинку Римские цифры в арабские php. Картинка про Римские цифры в арабские php. Фото Римские цифры в арабские php

Яндекс-диск — создать таблицу

И так, будем считать, что Excel (или его аналог) у вас есть, и программа запущена — перед вами большой лист в клеточку. Теперь выберите первую ячейку A1, и в верхнюю строку с формулой напишите:

где 355 — число, которое вам нужно конвертировать в римское.

После нажмите Enter. Программа автоматически покажет вам в ячейке A1 римское число (см. пример на скрине ниже). Теперь можно скопировать его и вставить в любой другой документ/текст.

Римские цифры в арабские php. Смотреть фото Римские цифры в арабские php. Смотреть картинку Римские цифры в арабские php. Картинка про Римские цифры в арабские php. Фото Римские цифры в арабские php

Libre Office (или Excel) — формула перевода в римское число

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

Римские цифры в арабские php. Смотреть фото Римские цифры в арабские php. Смотреть картинку Римские цифры в арабские php. Картинка про Римские цифры в арабские php. Фото Римские цифры в арабские php

Для обратного перевода используется другая формула:

где LXXX — римское число. Обратите внимание на кавычки — они обязательны, т.к. римские числа задаются текстом.

Римские цифры в арабские php. Смотреть фото Римские цифры в арабские php. Смотреть картинку Римские цифры в арабские php. Картинка про Римские цифры в арабские php. Фото Римские цифры в арабские php

Формула перевода римского числа в арабское

Способ 2 (Word)

Я покажу свой пример на версии Office 2019 (в принципе, аналогично будет выполняться и в других современных версиях 2016, 2013).

Римские цифры в арабские php. Смотреть фото Римские цифры в арабские php. Смотреть картинку Римские цифры в арабские php. Картинка про Римские цифры в арабские php. Фото Римские цифры в арабские php

Word — формат номеров страниц / Кликабельно

Далее укажите формат страниц в виде арабских чисел «1, 2, 3. » и выберите нумерацию страниц с того числа, которое вам нужно перевести в римское. В моем примере 3569.

После чего просто выберите новый формат нумерации «I, II, III» и ву-а-ля — арабское число преобразуется в римское. Осталось только скопировать его и вставить в нужный вам текст.

Способ актуален даже для достаточно больших чисел.

Римские цифры в арабские php. Смотреть фото Римские цифры в арабские php. Смотреть картинку Римские цифры в арабские php. Картинка про Римские цифры в арабские php. Фото Римские цифры в арабские php

Меняем формат и готово!

Способ 3 (Word)

В Word есть еще один способ, как можно быстро перевести число в римское:

Источник

Римские цифры перевод и таблица

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

Римская запись чисел с использованием римских цифр является непозиционной системой счисления.

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

Римские цифры набираются на клавиатуре большими латинскими буквами — I, V, X, L, C, D, M.

Римские цифры в арабские

Арабские цифры в римские

Соответствие римских и арабскиц цифр

Римская цифраЧисло
I1
V5
X10
L50
C100
D500
M1000

Таблица римские цифры от 1 до 20

Наиболее востребованными являются римские цифры от 1 до 20. Для вашего удобства сделали таблицу перевода.

Арабское числоЧисло римскими цифрами
1I
2II
3III
4IV
5V
6VI
7VII
8VIII
9IX
10X
11XI
12XII
13XIII
14XIV
15XV
16XVI
17XVII
18XVIII
19XIX
20XX

Века римскими цифрами

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

Таблица веков римскими цифрами

ВекВек римскими цифрами
1I
2II
3III
4IV
5V
6VI
7VII
8VIII
9IX
10X
11XI
12XII
13XIII
14XIV
15XV
16XVI
17XVII
18XVIII
19XIX
20XX
21XXI
22XXII
23XXIII
24XXIV
25XXV
26XXVI
27XXVII
28XXVIII
29XXIX
30XXX
31XXXI

Римские цифры до 100

Огромная таблица римских цифр от 1 до 100.

ЧислоЧисло римскими цифрамиЧислоЧисло римскими цифрамиЧислоЧисло римскими цифрамиЧислоЧисло римскими цифрамиЧислоЧисло римскими цифрами
1I21XXI41XLI61LXI81LXXXI
2II22XXII42XLII62LXII82LXXXII
3III23XXIII43XLIII63LXIII83LXXXIII
4IV24XXIV44XLIV64LXIV84LXXXIV
5V25XXV45XLV65LXV85LXXXV
6VI26XXVI46XLVI66LXVI86LXXXVI
7VII27XXVII47XLVII67LXVII87LXXXVII
8VIII28XXVIII48XLVIII68LXVIII88LXXXVIII
9IX29XXIX49XLIX69LXIX89LXXXIX
10X30XXX50L70LXX90XC
11XI31XXXI51LI71LXXI91XCI
12XII32XXXII52LII72LXXII92XCII
13XIII33XXXIII53LIII73LXXIII93XCIII
14XIV34XXXIV54LIV74LXXIV94XCIV
15XV35XXXV55LV75LXXV95XCV
16XVI36XXXVI56LVI76LXXVI96XCVI
17XVII37XXXVII57LVII77LXXVII97XCVII
18XVIII38XXXVIII58LVIII78LXXVIII98XCVIII
19XIX39XXXIX59LIX79LXXIX99XCIX
20XX40XL60LX80LXXX100C

Римские цифры на клавиатуре

Довольно часто возникает проблема при наборе римских цифр. Например, для того, чтобы вводить римские цифры в Ворде (Word) их набирают на клавиатуре с помощью латинских букв как показано на рисунке. Соответственно:

Перевод числа в римскую цифру в Excel

Мало кто знает, но в Excel есть встроенная функция для перевода арабских чисел в римские цифры. Для того, чтобы сделать перевод введите в ячейке «=РИМСКОЕ(21)» (без кавычек) и нажмите Enter. Excel поместит в ячейку римское число — XXI.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *