Имеется ли библиотека или фрагмент кода, который может принимать две строки и возвращать точную или приблизительную строку в середине строки между двумя строками?
Предпочтительно, код будет в Python.
Справочная информация:
Это кажется простой проблемой на поверхности, но я как бы борюсь с ней:
- Очевидно, что средняя точка между "A" и "C" будет "B".
- При кодировании base64, средняя точка между "A" и "B", вероятно, будет "Ag"
- С кодировкой UTF-8 я не уверен, какой будет действительная средняя точка, потому что средний символ выглядит как управляющий символ:
U+0088 c2 88 <control>
Практическое применение:
Причина, по которой я спрашиваю, заключается в том, что я надеялся написать алгоритм типа map-reduce, чтобы читать все записи из нашей базы данных и обрабатывать их. Первичными ключами в базе данных являются строки с кодировкой UTF-8 со случайными распределениями символов. База данных, которую мы используем, - это Cassandra.
Был надежд получить самый низкий ключ и самый высокий ключ из базы данных, а затем разбить его на два диапазона, найдя среднюю точку, а затем разбить эти два диапазона на два небольших раздела, найдя каждую из своих средних точек, пока я не несколько тысяч разделов, то я мог читать каждый раздел асинхронно.
Пример, если строки были закодированы по базе 16: (некоторые из средних точек являются приблизительными):
Starting highest and lowest keys: '000' 'FFF' / \ / \ '000' '8' '8' 'FFF' / \ / \ / \ / \ Result: '000' '4' '4' '8' '8' 'B8' 'B8' 'FFF' (After 3 levels of recursion)