Найти лучший результат за конечное целое число
Я хочу получить один алгоритм, который удовлетворяет следующим условиям:
1. Результат является уникальным.
2. результат в конечном целочисленном множестве колеблется от 0 до 2^256, а количество элементов случайно, значение элементов тоже случайно, повторения нет.
3. Решение очень сложно, но результат проверки очень прост.
Что я уже пробовал:
for example : input set: 0x00034 0x0000345 0x8892ff ... x : a byte array out: y = f(set, x); y belong to set; verify: verify(set, x, y) = ok / false
Rick York
Я редко вижу проблему, сформулированную так неопределенно. Учитывая конечный набор целых чисел, вы хотите получить некоторый результат, но вы ни в малейшей степени не описали, какой результат вы хотите. Похоже, вы хотите получить уникальный результат для каждого набора. Насколько я знаю, алгоритм CRC32 может сработать для вас. Вы можете найти тонны примеров кода для него здесь и в других местах, и он дает уникальные результаты для всех наборов входных данных. Он также дает результаты, которые не ассоциативны с входным значением, то есть вы можете поменять местами два входных значения и получить другой результат. Возможно, вам придется расширить его за пределы 32 бит, чтобы охватить необходимый диапазон данных.
luckydogchina
Я хочу разработать алгоритм миннера в биткойне.