уникальный идентификатор Matlab на основе числа

Я ищу уникальный идентификатор на основе числа с плавающей запятой в матлабе, поэтому на ум пришли хэш-функции. Предлагает ли Matlab (наша его менее документированная Java-часть или даже (Windows) системные команды) какие-либо возможности для любой хеш-функции, такой как MD5?

uniquehash=hash(5);
uniquehash=hash('asdf');

связанные: скрипт datahash
Уникальный идентификатор из Java, который может быть полезен : char(java.util.UUID.randomUUID)

Насколько я видел, это не дубликат, так как мне нужен уникальный идентификатор на основе числа с плавающей запятой. однако дайте мне знать, если это...


person user2305193    schedule 13.09.2017    source источник
comment
Уникальный идентификатор чего? В любом случае, это может оказаться полезным (функция, созданная пользователем)   -  person Luis Mendo    schedule 13.09.2017
comment
@LuisMendo: ... строки в 2D-матрице   -  person user2305193    schedule 13.09.2017
comment
@user2305193: Стивен приводит очень четкий аргумент в пользу использования значения двойной точности в качестве уникального идентификатора. Неясно, в каком формате вам может понадобиться идентификатор, поэтому я просто хотел, чтобы вы знали о num2hex для преобразования двойного значения в шестнадцатеричную строку.   -  person gnovice    schedule 14.09.2017


Ответы (1)


Мне нужен уникальный идентификатор на основе числа с плавающей запятой.

Предполагая, что вы говорите о 64-битном числе с плавающей запятой, это означает, что может быть только 2 ^ 64 (максимум) возможных уникальных идентификаторов. Вы также можете использовать сам номер в качестве идентификатора.

Использование криптографического хэша, такого как MD5, SHA1, SHA2 и т. д., не делает номер более уникальным. В конце концов, 2^64 возможных числа с плавающей запятой сопоставляются с 2^64 возможными хэшами. Большинство из 2^128 (или сколько угодно) теоретически возможных хэшей просто не могут быть сгенерированы.

(Если вы говорите о 32-битных числах с плавающей запятой, замените 2 ^ 32 на 2 ^ 64!)

person Stephen C    schedule 13.09.2017
comment
это изящно сказано и абсолютно верно, я недостаточно обдумал это. Причиной этого было динамическое заполнение матрицы, а затем отслеживание строк с использованием уникального идентификатора. Однако, если вы используете для этого число с плавающей запятой, хэш-функция устарела (т.е. мы согласны), если это не так, то char(java.util.UUID.randomUUID) можно использовать для создания уникальных идентификаторов. - person user2305193; 13.09.2017