Сжатие строки
Вопрос такой: Есть 19-значный номер пластиковой смарт-карты строкового типа (string), содержащий только цифры. Его нужно сжать так, чтобы стало не более 16-ти символов и так чтобы он остался уникальным (он будет в последствии занесен в базу. не спрашивайте почему надо его сжать, просто это нужно сделать). выкидывать из него символы не вариант тк нет гарантии что они окажутся повторяющимися во всех номерах.
Каким алгоритмом лучше воспользоваться?
Заранее спасибо
Цитата: Revenant
Всем доброго времени суток!
Вопрос такой: Есть 19-значный номер пластиковой смарт-карты строкового типа (string), содержащий только цифры. Его нужно сжать так, чтобы стало не более 16-ти символов и так чтобы он остался уникальным (он будет в последствии занесен в базу. не спрашивайте почему надо его сжать, просто это нужно сделать). выкидывать из него символы не вариант тк нет гарантии что они окажутся повторяющимися во всех номерах.
Каким алгоритмом лучше воспользоваться?
Заранее спасибо
Вопрос такой: Есть 19-значный номер пластиковой смарт-карты строкового типа (string), содержащий только цифры. Его нужно сжать так, чтобы стало не более 16-ти символов и так чтобы он остался уникальным (он будет в последствии занесен в базу. не спрашивайте почему надо его сжать, просто это нужно сделать). выкидывать из него символы не вариант тк нет гарантии что они окажутся повторяющимися во всех номерах.
Каким алгоритмом лучше воспользоваться?
Заранее спасибо
А зачем его сжимать? Каждая цифра ведь в номере от 0 до 9, так и используйте не string, а BCD или что-либо в этом роде.
P.S. Выкидывать символы вариант, только если выкинуть БИН (первые четыре цифры) и то только если все карты имеют один БИН.
Но не понадобилось!) Я решил проблему по-своему. Все оказалось гораздо проще чем я думал)