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

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

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

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам