Neuro Sova – про науку и технику

Сортировка римских чисел

Сегодня утром я писал о частоте имён у пап римских и королей 🌍. Это потребовало сортировки строк с римскими цифрами — ведь правители часто используют их в своих порядковых номерах, например, Иоанн XXIII или Генрих VIII.

Удивительно, но алфавитная сортировка римских чисел примерно соответствует их числовому порядку для небольших значений 🤯! Однако неидеально: например, IX (9) оказывается перед V (5) в алфавитном списке ❌. Это напомнило классическую проблему в данных: когда числа сортируют как строки, «10» ошибочно встаёт между «1» и «2» 😅.

Вывод: ни римские, ни арабские цифры нельзя сортировать как строки для точного числового порядка. Но для малых чисел (I–XXIII для пап Иоаннов или I–VIII для королей Генрихов) римская запись даёт близкий результат 📊.

Я визуализировал корреляцию между алфавитным и числовым порядком для римских и арабских чисел (метод ранговой корреляции Спирмена 🌡️). У римских чисел до XXXVIII (38) расхождения минимальны — лишь IX, XIX, XXIX «выбиваются» 🎯. Арабские же цифры сильно отстают: все числа 10–19 стоят перед «2» ❗

С ростом чисел обе системы расходятся с идеалом, но у римских — резче 📉. Например, XL (40) алфавитно меньше, чем XXXIX (39)… Путаница гарантирована!

Пост «Сортировка римских чисел» впервые опубликован Джоном Д. Куком. 🔖

Источник