查看原文
其他

《长安十二时辰》教了哪些算法知识?


作者 | 程序员小吴

来源 | 五分钟学算法(ID:CXYxiaowu)


【导语】最近,《长安十二时辰》这部古装剧受到了大家的热议,作者小吴也在追剧。这部剧讲的是什么故事?和算法有什么关系?今天,我们就深入剧情,让大家不仅可以看热闹,更能看懂其中的门道!


在上元节前夕,长安城混入可疑人员,身陷囹圄的张小敬临危受命,与少年天才李必携手在十二时辰内破除隐患。该剧的一大亮点在于时间很紧迫,需要在二十四小时内捉拿蓄谋已久的“恐怖分子”。之所以张小敬与李必能及时破除隐患,依赖的是正确的使用数据结构与算法!


大案牍术与推荐算法



大案牍术的发明者是靖安司中的徐宾,凭借着神奇的“记忆宫殿”加上刻苦钻研,研究出了一套以档案数据为基础的处理事务的方法,即为“大案牍术”。


你可以将大案牍术理解为我们当下热门的大数据。依托于这个大案牍术 ,可以快速分析大量数据信息进行推理,无论是破案调查找人,还是预言未来,都可以做到。故事的主角张小敬正是凭借着大案牍术中的推荐算法脱颖而出,成为拯救长安的大英雄。


长安舆图与时间复杂度


对于“恐怖分子”狼卫来说,长安不是他们的家乡,是一个人生地不熟的陌生城市。


如果通过四处遍历的方式(暴力法)去寻找长安的核心目标,那再给他们几个月也是无法精准定位的,此时他们到达目的地的时间复杂度为 O(n2)。


所以,剧情一开始狼卫准备夺取长安舆图 。



有了上面这份长安舆图便可轻易精准定位目标所在地,狼卫使用长安舆图优化了时间复杂度,达到了 O(n) 级别


此时,长安危在旦夕。


“五尊阎罗”张小敬站出来了!对于他来说,长安可不是平面的,而是三维立体的,哪里有沟渠哪里能上房都一清二楚。


张小敬通过以空间换时间的方式(飞檐走壁)极大的优化了时间复杂度,达到了O(logn) 的级别。


正是因为他们使用的算法不同,这才在为张小敬能追上狼卫提供了理论上的支持。


望楼系统与加密算法


整部剧的信息传递极大的依赖于剧中的望楼系统


图片来源于北斗北工作室


先说一下望楼:望楼是八丈高的瞭望塔,星罗棋布的安置于长安城中,敲鼓之后用方格拼出的图案传递信息。


图片来源于北斗北工作室


望楼系统的信息传递使用的是公开的方式,视野处都能看到望楼上显示的花纹图案,但是它们的具体含义只有内部人员通过密码本进行查询,方可解密出对应的文字含义。


到这里,我们看到了大数据思维、推荐算法、加密算法等技术在古代被应用的一个场景。今天,我们把这些思维力以计算机编码的方式呈现,让更多的人可以学习,了解这些科学与技术应用。我们都曾在参悟算法的路上遇到重重困难,而这个初解读希望能给大家在技术学习路上带来一些趣味,学以致用!


(*本文为 Python大本营转载文章,转载请联系作者


精彩推荐



“只讲技术,拒绝空谈”2019 AI开发者大会将于9月6日-7日在北京举行,这一届AI开发者大会有哪些亮点?一线公司的大牛们都在关注什么?AI行业的风向是什么?2019 AI开发者大会,倾听大牛分享,聚焦技术实践,和万千开发者共成长。


目前,大会早鸟票抢购中~扫码购票,领先一步!


推荐阅读:

你点的每个“在看”,我都认真当成了喜欢

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存