Создать уникальный идентификаторов для пары элементов
От: 777777w Россия  
Дата: 06.11.16 11:05
Оценка:
Имеются элементы, каждый из которых имеет уникальный идентификатор (в простейшем случае — их адрес в памяти). Требуется создать идентификатор для пары элементов, но так чтобы его значение не зависело от порядка в котором они берутся. Можно было бы использовать XOR, но есть вероятность что его значение совпадет с другой парой. А если слепить идентификаторы вместо с помощью OR, то результат будет зависеть от порядка.
Отредактировано 06.11.2016 11:05 777777w . Предыдущая версия .
Re: Создать уникальный идентификаторов для пары элементов
От: Sinix  
Дата: 06.11.16 11:26
Оценка: +5
Здравствуйте, 777777w, Вы писали:

7>А если слепить идентификаторы вместо с помощью OR, то результат будет зависеть от порядка.


Как насчёт отсортировать?
Re: Создать уникальный идентификаторов для пары элементов
От: Pavel Dvorkin Россия  
Дата: 06.11.16 11:37
Оценка:
Здравствуйте, 777777w, Вы писали:

7>Имеются элементы, каждый из которых имеет уникальный идентификатор (в простейшем случае — их адрес в памяти). Требуется создать идентификатор для пары элементов, но так чтобы его значение не зависело от порядка в котором они берутся. Можно было бы использовать XOR, но есть вероятность что его значение совпадет с другой парой. А если слепить идентификаторы вместо с помощью OR, то результат будет зависеть от порядка.


В предположении, что идентификаторы имеют одинаковую длину

MIN(A,B) CONCAT MAX(A,B)

Если это не так — добавь разделитель между ними.
With best regards
Pavel Dvorkin
Re: Создать уникальный идентификаторов для пары элементов
От: kov_serg Россия  
Дата: 06.11.16 11:45
Оценка:
Здравствуйте, 777777w, Вы писали:

7>Имеются элементы, каждый из которых имеет уникальный идентификатор (в простейшем случае — их адрес в памяти). Требуется создать идентификатор для пары элементов, но так чтобы его значение не зависело от порядка в котором они берутся. Можно было бы использовать XOR, но есть вероятность что его значение совпадет с другой парой. А если слепить идентификаторы вместо с помощью OR, то результат будет зависеть от порядка.


pair.id=[min(a.id,b.id),max(a.id,b,id)]
Если есть N уникальных элементов. То уникальных пар N*(N-1)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.