我研究的简洁python代码是here
问题A @第8行
我真的不明白" res = res<< 1 "出于" get_signature"
的目的问题B @第49行(由我自己通过另一个Q&A解决)
" xor = r1 ^ r2 "对我来说真的没有任何意义,作者后来尝试过这个问题" (d-nna(vor))"计算" hash_sim" - (参见第50行)
问题C @关于一般的hash_sim
这个问题更多地与LSH理解有关,什么变量" d " (第38行)正在进行示例代码----后来用于计算第50行中的 hash_sim
问题D @第20行和第24行 - "&"
的synatx不仅在理解语法方面遇到问题" num = num& (num-1)",但也不确定什么功能" nnz"正在hash_similarlity的上下文中。当作者应用" xor"时,这个问题可能与我的问题(-b-)有关。进入" nnz "以及" xor "的等式(问题b)对我来说很奇怪。
P.S。
我的python和LSH理解都处于初学者水平,我有点为这个问题进入循环。感谢您抽出宝贵的时间来解决我的困惑以及代码
答案 0 :(得分:1)
一个。这是一个左移:https://docs.python.org/2/reference/expressions.html#shifting-operations它将位移到左边。
湾请注意,^
不是Python中的“权力”,而是“按位异或”。
℃。正如评论所述:它将“每个签名的位数”定义为2**10
→1024
d。这些行计算num
和num + 1
的按位AND。
该功能的目的记录在上面的注释中:
“#得到二进制数'1'