Бештар

Ҳисобкунии самараноки нуқтаи дуртарин аз пайдоиш


Ман мекӯшам, ки роҳи оқилона/муассири ҳисоб кардани нуқтаи дуртарин аз пайдоишро бо назардошти рӯйхати нуқтаҳои лат ва lng пайдо кунам.

Масалан, агар ман кӯшиш кунам, ки нуқтаи наздиктаринро аз пайдоиш пайдо кунам, ман метавонам ин функсияро мутобиқ созам, ки ҳама нуқтаҳои наздикро пайдо мекунад:

def getNearby (orig_dict, geo_dict_list, radius_miles): # аз http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL # мутобиқ карда шудааст, ки ин як кунҷи+lng мураббаъ # эҷод намекунад техникӣ дуруст, аммо фикри умумӣ: # lat_1 ---> lng_1 # | | # | | # | | # lat_2 ---> lng_2 # агар нуқтаи гео дар дохили квадрати мо+lng бошад, пас масофаи дақиқро гарон ҳисоб кунед # то бубинед, ки оё он дар дохили радиус-доира дар майдон аст (доира нишон дода нашудааст) # geo_dict_list = [ {'lat': 1.234, 'lng': 5.678},…] офсет = radius_miles / 69.1 lat_1 = Origin_dict ['lat'] - ҷуброн lat_2 = Origin_dict ['lat'] + ҷуброн ба ҷои = radius_miles / abs (math.cos (math.radians (orig_dict ['lat']))) * 69.1) lng_1 = Origin_dict ['lng'] - ҷуброн lng_2 = Origin_dict ['lng'] + офсет return_indexes = [] барои индекс, geo_dict дар рӯйхат (geo_dict_list): агар (geo_dict ['lat']> = lat_1) ва (geo_dict ['lat'] <= lat_2) ва (geo_dict ['lng']> = lng_1) ва (geo_dict ['lng'] <= lng_2): агар getDistance (orig_dict, geo_dict, воњидҳо = "мил") <= radius_miles: return_indexes.append (index) return_indxes

Оё роҳи ба ин монанд барои дарёфти дуртарин нуқтаи пайдоиш вуҷуд дорад? Ё шояд роҳе вуҷуд дорад, ки рӯйхати аслиро тавре сохтан мумкин аст, ки ба шумо имкон медиҳад, ки навъбандии оқилона анҷом диҳед?


Он чизе, ки ба пайдоиш наздиктар аст, аз кунҷи муқобили 'квадрат' дуртар аст, ба шарте ки он тамоми кураи замин нест, ки шумо дар борааш мегӯед.

Ин дар 10 дараҷаи "квадрат" бо истифода аз 100 нуқтаи тасодуфӣ санҷида шудааст: