-1

我研究的简洁的python代码在这里

问题 A @ 第 8 行

对于“get_signature”,我不太了解“ res = res << 1 ”的语法含义

问题 B @ 第 49 行(由我自己通过另一个Q&A解决)

xor = r1^r2 ”对我来说没有任何意义,作者后来尝试“ (d-nna(vor)) ”来计算“hash_sim”——(参考第50行)

关于 hash_sim 的问题 C @

这个问题更多地与 LSH 理解有关,示例代码中的变量“ d ”(第 38 行)在做什么----稍后用于计算第 50 行中的hash_sim

问题 D @ 第 20 和 24 行——“&”的语法

不仅理解语法“ num = num & (num-1) ”有问题,而且不确定函数“nnz”在 hash_similarlity 的上下文中正在做什么。当作者将“xor”应用于“ nnz ”时,这个问题可能与我的问题(-b-)有关,并且“ xor ”(问题b)的方程再次对我来说看起来很奇怪。

ps

我对 python 和 LSH 的理解都处于初学者水平,我有点进入这个问题的循环。感谢您花时间了解我的困惑以及代码

4

1 回答 1

1

一个。这是一个左移:https ://docs.python.org/2/reference/expressions.html#shifting-operations它将位向左移动一位。

湾。请注意,这^不是 Python 中的“幂”而是“按位异或”。

C。正如评论所述:它将“每个签名的位数”定义为2**101024

d。这些行计算 和 的按位numnum + 1。该函数的目的记录在上面的注释中:“# get number of '1's in binary”

于 2015-06-22T06:26:54.523 回答