1. 程式人生 > >看《長安十二時辰》可以瞭解哪些演算法知識

看《長安十二時辰》可以瞭解哪些演算法知識

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