看《長安十二時辰》可以瞭解哪些演算法知識
阿新 • • 發佈:2019-07-18
最近,小吳在追一部古裝劇 ----《長安十二時辰》。
故事講得是在上元節前夕,長安城混入可疑人員,身陷囹圄的張小敬臨危受命,與少年天才李必攜手在十二時辰內破除隱患。
該劇的一大亮點就在於 時間很緊迫,需要在二十四小時內捉拿蓄謀已久的“恐怖分子”。
而之所以張小敬與李必能及時破除隱患,依賴的是正確的使用資料結構與演算法!
大案牘術與推薦演算法
大案牘術的發明者是靖安司中的徐賓,憑藉著神奇的“記憶宮殿”加上刻苦鑽研,研究出了一套以檔案資料為基礎的處理事務的方法,即為“大案牘術”。
你可以將 大案牘術 理解為我們當下熱門的 大資料。
依託於這個 大案牘術 ,可以快速分析大量資料資訊進行推理,無論是破案調查詢人,還是預言未來,都可以做到。
故事的主角張小敬正是憑藉著 大案牘術 中的 推薦演算法 脫穎而出,成為拯救長安的大英雄。
長安輿圖與時間複雜度
對於“恐怖分子”狼衛來說,長安不是他們的家鄉,是一個人生地不熟的陌生城市。
如果通過四處遍歷的方式(暴力法)去尋找長安的核心目標,那再給他們幾個月也是無法精準定位的,此時他們到達目的地的時間複雜度為 O(n2)。
所以,劇情一開始狼衛準備奪取 長安輿圖 。
有了上面這份長安輿圖便可輕易精準定位目標所在地,狼衛使用 長安輿圖 優化了時間複雜度,達到了 O(n) 級別。
大唐危矣!
“五尊閻羅”張小敬站出來了!對於他來說,長安可不是平面的,而是三維立體的,哪裡有溝渠哪裡能上房都一清二楚。
張小敬通過以空間換時間的方式(飛檐走壁),極大的優化了時間複雜度,達到了O(logn) 的級別。
正是因為他們使用的演算法不同,這才在為張小敬能追上狼衛提供了理論上的支援。
望樓系統與加密演算法
整部劇的資訊傳遞極大的依賴於劇中的 望樓系統。
先說一下望樓:望樓是八丈高的瞭望塔,星羅棋佈的安置於長安城中,敲鼓之後用方格拼出的圖案傳遞資訊。花紋圖案對應三位數字,在密碼本中可查詢數字對應的文字含義。
望樓系統的資訊傳遞使用的是公開的方式,視野處都能看到望樓上顯示的花紋圖案,但是它們的具體含義只有內部人員通過密碼本進行查詢,方可解密出對應的文字含義。