Рассмотрим на примерах, как преобразовывать римских числа в арабские и арабские числа в римские с помощью Python.
Римские цифры используют комбинации букв латинского алфавита для представления значений. Основные символы и их значения:
Правила:
Создадим функцию roman_to_arabic()
, преобразующую римское число в его арабский эквивалент.
def roman_to_arabic(roman):
roman_numerals = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
result = 0
prev_value = 0
for i in range(len(roman) - 1, -1, -1):
int_val = roman_numerals[roman[i]]
if int_val < prev_value:
result -= int_val
else:
result += int_val
prev_value = int_val
return result
print(roman_to_arabic('IV'))
# 4
roman_numerals
для соответствия римских символов их арабским значениям.result
для хранения результата и prev_value
для предыдущего значения.result
, основываясь на текущем и предыдущем значении.Напишем функцию arabic_to_roman()
, которая выполняет обратное преобразование.
def arabic_to_roman(number):
roman_numerals = [
(1000, 'M'), (900, 'CM'), (500, 'D'), (400, 'CD'),
(100, 'C'), (90, 'XC'), (50, 'L'), (40, 'XL'),
(10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')
]
result = ""
for value, numeral in roman_numerals:
while number >= value:
result += numeral
number -= value
return result
print(arabic_to_roman(4))
# IV
roman_numerals
содержит пары (арабское значение, римский символ).Мы рассмотрели, как можно перевести римские числа в арабские и наоборот с помощью Python. Эти методы могут быть полезны как для обработки исторических данных, так и для развития навыков программирования. Описанные алгоритмы можно адаптировать и модифицировать в соответствии с конкретными задачами.
Содержание: