【发布时间】:2016-09-04 15:57:37
【问题描述】:
列表不可散列。然而,我是implementing LSH,我正在寻找一个哈希函数,它将一个正整数列表(在 [1, 29.000] 中)对应到 k 个存储桶。列表的数量是 D,其中 D > k(我认为)和 D = 40.000,其中 k 尚不清楚(欢迎提出建议)。
示例(D = 4,k = 2):
118 | 27 | 1002 | 225
128 | 85 | 2000 | 8700
512 | 88 | 2500 | 10000
600 | 97 | 6500 | 24000
800 | 99 | 7024 | 25874
第一列应该作为哈希函数的输入并返回一个桶的编号。
让我困惑的是,我们不是在寻找一个函数来散列一个数字,而是一个列,即一个正整数列表。
有什么想法吗?
如果这很重要,我正在使用python
【问题讨论】:
-
将其转换为可散列类型,例如元组怎么样? (例如哈希(元组([1,2,3])))
-
@hunminpark 你的意思是
print hash(tuple([1,2,3,4,5]))?这就是@lejlot 的建议,但他删除了他的答案.. -
澄清一下,您的意思是要获取列表并生成单个存储桶索引,还是要获取长度为
n的列表并生成n存储桶索引? -
@mobiuskle 在第一。输入是一个正整数列表 -> h -> 桶的索引。
标签: python python list hash nearest-neighbor locality-sensitive-hash