概 述
一、環境說明
gun gcc compiler
code::blocks 13.12
windows10 64bit
二、演算法與資料結構介紹
2.1 geohash演算法
將經緯度hash成乙個long long。演算法流程如下,比如(120, 30) 範圍精度是0-180 唯獨是0-90:
120>=(0+180)/2 故h[0]=1 30<=(0+90)/2 h[1]=0
120<=(90+180)/2 h[2]=0 30>=(0+45)/2 h[3]=1
120>=(90+135)/2 h[4]=1 30<=(22.5+45)/2 h[5]=0
以此類推二分得到每個座標唯一的hash值。
這個演算法的優點是**簡單且容易維護,準確度高速度快。缺點是分割線上不能保證最優解。但大部分情況有最優解,極小部分有較優解。
驗證發現在前四十層分割線上1e-5範圍內只有437個點
空間複雜度o(nlogn)
查詢複雜度o(logn*e) e為從最hash值最接近的e個點找最近點。
2.2 a*搜尋演算法
a*搜尋用於求指定起點和終點的最短路。估價函式採用當前點到終點的歐幾里德距離。實現上用優先佇列來彈出 到起點距離+估價值 最小的點,之後把所有相鄰點插入優先佇列。
這裡給大家介紹一種雙向a*的演算法。
原始碼和文件分享 基於swift的詞法分析程式
計算正則式 讀入正規表示式 對正規表示式處理 建圖 生成 nfa 將 nfa 去除空節點 轉化為 nfa 將 nfa 轉化為 dfa 對 dfa 圖進行遍歷每個節點,獲取到每個節點通過某個字元到達哪下乙個狀態,並找到終態 構造 dfa 表 輸出顯示 驗證字串 在成功通過正規表示式構建 dfa 圖的基...
原始碼和文件分享 基於python的中文聊天機械人
前言 一 系統設計思路和框架 本次系統全部使用 python 編寫,在系統設計上遵循著配置靈活 模組化的思路,分為資料預處理器 資料處理器 執行器 深度學習模型 視覺化展示五個模組。模組間的邏輯關係大致為 資料預處理是將原始語料進行初步的處理以滿足於資料處理模組的要求 執行器是整個系統引擎分別在運轉...
原始碼和文件分享 基於Python的智慧型監控平台
檔案結構介紹 templates 資料夾中是網頁模版 static 資料夾中是一些靜態檔案js和css檔案 res 資料夾中是 object detection 需要的訓練好的模型和標籤和其他的資源檔案 output 資料夾中放置的是 object detection 分析的結果 camera.py...