第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

計算郵政編碼與用戶之間的距離。

計算郵政編碼與用戶之間的距離。

qq_笑_17 2019-12-25 15:07:02
這不是我緊急需要的問題,更是一個挑戰(zhàn)性的問題,所以不要整日花在那些家伙上。我在2000年左右建立了一個約會網(wǎng)站(早已消失),其中一項挑戰(zhàn)是計算用戶之間的距離,以便我們可以在X英里半徑內顯示您的“匹配項”。僅給出以下數(shù)據(jù)庫架構,僅說明問題:用戶表UserId用戶名ZipCode郵政編碼表郵政編碼緯度經(jīng)度將USER和ZIPCODE連接到USER.ZipCode = ZIPCODE.ZipCode。您將采用哪種方法來回答以下問題:在距給定用戶的郵政編碼X英里以內的郵政編碼中居住著哪些其他用戶。我們使用了2000年的人口普查數(shù)據(jù),其中包含郵政編碼表以及它們的近似緯度和經(jīng)度。我們還使用Haversine公式來計算球體上任意兩個點之間的距離。至少對我們來說,問題是,我們還是19歲的大學生,實際上成為了如何有效地計算和/存儲所有成員到所有其他成員的距離的問題。一種方法(我們使用的一種方法)是導入所有數(shù)據(jù)并計算從每個郵政編碼到每個其他郵政編碼的距離。然后,您將存儲結果并為其編制索引。就像是:SELECT  User.UserIdFROM    ZipCode AS MyZipCode        INNER JOIN ZipDistance ON MyZipCode.ZipCode = ZipDistance.MyZipCode        INNER JOIN ZipCode AS TheirZipCode ON ZipDistance.OtherZipCode = TheirZipCode.ZipCode        INNER JOIN User AS User ON TheirZipCode.ZipCode = User.ZipCodeWHERE   ( MyZipCode.ZipCode = 75044 )        AND ( ZipDistance.Distance < 50 )當然,問題在于ZipDistance表中將包含很多行。這不是完全不可行的,但確實很大。另外,它還需要對整個數(shù)據(jù)集進行完整的準備工作,這也不是無法管理的,但不一定是令人滿意的。無論如何,我想知道你們中的某些大師會采取什么樣的方法。另外,我認為這是程序員經(jīng)常要解決的常見問題,尤其是當您考慮算法上相似的問題時。我對一個徹底的解決方案感興趣,該解決方案在所有方面都至少包含提示,以確??焖儆行У赝瓿纱巳蝿铡Vx謝!
查看完整描述

3 回答

?
哈士奇WWW

TA貢獻1799條經(jīng)驗 獲得超6個贊

您可以將空間劃分成大小大致相等的區(qū)域-例如,將地球近似為布基球或二十面體。如果更容易的話,這些區(qū)域甚至可以重疊一點(例如,使其成為圓形)。記錄每個郵政編碼所在的區(qū)域。然后,您可以預先計算每個區(qū)域對之間的最大距離,該區(qū)域與計算所有郵政編碼對具有相同的O(n ^ 2)問題,但n較小。

現(xiàn)在,對于任何給定的郵政編碼,您都可以獲得絕對在給定范圍內的區(qū)域列表以及跨邊界的區(qū)域列表。對于前者,只需獲取所有郵政編碼。對于后者,請深入每個邊界區(qū)域并針對各個郵政編碼進行計算。

這肯定在數(shù)學上更加復雜,尤其是必須選擇區(qū)域的數(shù)量以在表的大小和動態(tài)計算所花費的時間之間取得良好的平衡,但是它可以將預先計算的表的大小減小余量。


查看完整回答
反對 回復 2019-12-25
  • 3 回答
  • 0 關注
  • 1016 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號