Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有hamming距离的vpVP树的奇异行为_Python - Fatal编程技术网

Python 具有hamming距离的vpVP树的奇异行为

Python 具有hamming距离的vpVP树的奇异行为,python,Python,get\u所有在\u范围内的\u(查询,8)应该给出距离和返回的查询。 我的问题是,给定的整数查询有时会以浮点形式返回。 当我稍后试图在字典中查找此返回的查询时,出现了一个错误 import vptree def hamming(a, b): return bin(int(a) ^ int(b)).count("1") def built_capas_tree(): tree = vptree.VPTree(points, hamming)

get\u所有在\u范围内的\u(查询,8)应该给出距离和返回的查询。 我的问题是,给定的整数查询有时会以浮点形式返回。 当我稍后试图在字典中查找此返回的查询时,出现了一个错误

import vptree

def hamming(a, b):
   return bin(int(a) ^ int(b)).count("1")    
   
def built_capas_tree():
    tree = vptree.VPTree(points, hamming)
    print(tree.get_all_in_range(13538286673355779, 8))

points = [9250411226805314304, 65203695947452367935, 27701658900143825408, 27701658900143824896, 13851697858099312129, 66321714554944897086, 68879864696418189375, 53687366400, 68735680239109784639, 4904732841788846848, 58890194691506111412, 9232396828295561248, 65167104200473591851, 58871061125449909172, 9250411226806362624, 64572629049558450233, 55340232221128655744, 68735749508333944863, 65167104200472543289, 27697155300617093124, 27697155300617093126, 13538286673355779, 66356617452059149375, 72664454087918485536, 72664454087918485536, 64590625855984123960, 9236910873284206595, 13543234475947009, 70085634845691411467, 18014398509752832, 65734540161339883580, 36893488147553321856, 28279844786294080527, 9232396828295590401, 27697155300616880159, 68879864696418189374, 36388574815860572191, 36388574815860572191, 26388279337472, 26388279337472, 26388279337472, 26388279337472, 26388279337472, 26388279337472, 46125884975714693888, 66392065706947051708, 64590643448170151967, 68697926308346724414, 64590643448170151967, 16589463243060558784, 46125884975714689024, 68734554339202942015, 68878070293439971384, 67905292773871481632, 68879864696418189375, 73786961039382775998, 68735749508342333502, 68735680239101396031, 66356652636292826143, 73635595602771166303, 9232396828331787327, 31665720406784, 68879864696434967615, 9255769696774190595, 9232396828296111107, 64590643448035983375, 4794456960410496, 4816447192969984, 65167667150311964687, 4799148138443648, 64572629049662816319, 66896486457390678048, 68734518055319158847, 27697155300515914244, 68878070293441658943, 9236909773772060417, 68662460461281230911, 68879795427185640511, 65744673260509921460, 73274181664068125727, 14418514451166723, 36893488164741591840, 68879829512046084158, 68879865795929818175, 64590643447933714432, 4794483803960192, 67013584462828024608, 66429836130376073279, 68662460461281230911, 9254923622525707008, 66320025705080438784, 64590643448067915808, 64572629049424491392, 64590643447933707136, 68879795427185640511, 65167667150429110331, 70085599042844032011, 65167667150429143103, 18014398511375875, 18014398511342083, 14155826828808189441]
结果: [(513543234475947009),(6,9.236910873284207e+18),(3,1.353828667335578e+16),(49223968296111107)]

对于给定的查询13538286673355779,我得到:(3,1.353828667335578e+16)。 预计:(013538286673355779)

但是,如果我将想要的查询放在相同点列表的第一个位置: [13538286673355779, 9250411226805314304, 65203695947452367935, 27701658900143825408, ....] 然后我真的得到了预期的结果: [(013538286673355779),(49236910873284206595),(6,1.3543234475947008e+16)]

我不理解这种行为