2016-11-29 3 views
-1

Заданы 2 целых числа a и b (положительные). Есть ли формула/метод для генерации уникального идентификационного номера?Создание уникального целочисленного идентификатора из двух целочисленных идентификаторов

примечание: результат от f (a, b) и f (b, a) должен быть одним и тем же. Решение должно быть эффективным. Независимо от того, что это будет царапиной PHP-кода или алгоритма.

+0

вы могли бы сделать MD5 хеш с помощью А и В в виде соли. – SaggingRufus

+1

@MateiMihai, который не является уникальным. Если A равно 1, а B равно 4, сумма равна 5. Если A равно 2, а B равно 3, сумма остается равной 5. – SaggingRufus

+1

@SaggingRufus могут быть ситуации, когда id1 = 12 id2 = 14 и id1 = 14 id2 = 12 это два случаи должны иметь то же самое, что и я, и он должен быстро работать на тысячах элементов. –

ответ

1

Пример для 32-битных чисел (используя сдвиг влево)

Int64Code = Max(a, b) + (Min(a, b) << 32) 
+0

Спасибо, это все просто и быстро) –

Смежные вопросы