Списки не хешируются. Тем не менее, я implementing LSH, и я ищет хеш-функцию, которая будет соответствовать списку положительных целых чисел (в [1, 29.000]) до k ковшей. Число списков - D, где D> k (я думаю) и D = 40.000, где k еще не известно (открыто для предложений).Как хэш-списки?
Пример (D = 4, к = 2):
118 | 27 | 1002 | 225
128 | 85 | 2000 | 8700
512 | 88 | 2500 | 10000
600 | 97 | 6500 | 24000
800 | 99 | 7024 | 25874
В первом столбце должны быть приведены в качестве входных данных для хэш-функции и возвращает количество ведро.
Что меня смущает то, что мы не ищем для функции хэширования номер, но в столбце, то есть список положительных целых чисел.
Любые идеи, пожалуйста?
Я использую python если это имеет значение
Как насчет превращения его в hashable типов, такие как кортеж? (например, hash (кортеж ([1, 2, 3]))) – hunminpark
@hunminpark вы имеете в виду что-то вроде 'print hash (tuple ([1,2,3,4,5]))'? Это то, что предложил @lejlot, но он удалил свой ответ. – gsamaras
Чтобы уточнить, вы хотите, чтобы вы взяли список и создали единый индекс ведра, или хотите взять список длины 'n' и произвести индексы 'n' bucket? – mobiusklein