看《长安十二时辰》可以了解哪些算法知识

最近,小吴在追一部古装剧 —-《长安十二时辰》。

故事讲得是在上元节前夕,长安城混入可疑人员,身陷囹圄的张小敬临危受命,与少年天才李必携手在十二时辰内破除隐患。

该剧的一大亮点就在于 时间很紧迫,需要在二十四小时内捉拿蓄谋已久的“恐怖分子”。

而之所以张小敬与李必能及时破除隐患,依赖的是正确的使用数据结构与算法

大案牍术与推荐算法

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

你可以将 大案牍术 理解为我们当下热门的 大数据

依托于这个  大案牍术 ,可以快速分析大量数据信息进行推理,无论是破案调查找人,还是预言未来,都可以做到。

故事的主角张小敬正是凭借着  大案牍术 中的 推荐算法 脱颖而出,成为拯救长安的大英雄。

长安舆图与时间复杂度

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

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

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

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

此时,长安危在旦夕。

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

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

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

望楼系统与加密算法

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

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

图片来源于北斗北工作室

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

图片来源于北斗北工作室

Image placeholder
徐文志程序猿
未设置
  30人点赞

没有讨论,发表一下自己的看法吧

推荐文章
Adobe又逆天!不用机器学习,用13.5M软件把《长安十二时辰》变成水墨动画

大数据文摘出品作者:曹培信用过修图软件的同学们应该都知道,利用强大的GAN,已经可以实现一键转换照片风格的功能,比如将你拍的风景照转换成一副印象派的画作。现在,轻松转换视频风格的软件也诞生了!Secr

漫画 |《程序员十二时辰》,居然是这样的!内容过于真实 …

作者:纯洁的微笑漫画:法小四据说程序员的一天是这样渡过….7:00开始新的一天起床缓冲中,已经进行……6%回想昨晚不该又High到2点7:10闹钟响到第6次的时候,终于鼓起勇气起床。其实我也不想那么晚

一些JavaScript 类(class)中需要了解的知识

JavaScript使用原型继承:每个对象都从原型对象继承属性和方法。在Java或Swift等语言中使用的传统类作为创建对象的蓝图,在JavaScript中不存在,原型继承仅处理对象。原型继承可以模拟

一篇文章带你了解CSS3 背景知识

LoremIpsumDolorLoremipsumdolorsitamet,consectetueradipiscingelit,seddiamnonummynibheuismodtincidun

云原生时代,分布式系统设计必备知识图谱(内含22个知识点)

作者|杨泽强(竹涧)阿里云技术专家我们身处于一个充斥着分布式系统解决方案的计算机时代,无论是支付宝、微信这样顶级流量产品、还是区块链、IOT等热门概念、抑或如火如荼的容器生态技术如Kubernetes

java常用算法有哪些?

课程推荐:java开发工程师--学习猿地精品课程 二分查找算法(非递归)/** @desc二分查询(非递归方式) 案例: {1,3,8,10,11,67,100},编程实现二分查找,要求使用非递归方式

你真的了解 React 吗?这里有 50 个 React 面试问题

如果你是一位有理想的前端开发人员,并且正在准备面试,那么这篇文章就是为你准备的。本文收集了React面试中最常见的50大问题,这是一份理想的指南,让你为React相关的面试做好充分的准备工作。首先我

Python 教程-了解Python

什么是Python Python能干什么? 有什么特点? 什么是Python 官方介绍: Python是一个易于学习、功能强大的编程语言。它拥有高效高级的数据结构和一种简单有效的面向对象编程的

你了解Spring Data JPA的批量插入吗?

实现场景 有关拼团旅游的业务,里面有这样一个逻辑实现:一个拼团活动表Activity对应多个Travel旅游表,travel旅游表要分段存储前端传来的List,Travel表需将每一条数据保存入库,

前端不得不了解的 Flex 布局

背景 又双叒叕被老大拉来顶替前端小姐姐撸代码,接触到了Flex布局,以前只听过没用过,碰巧这次要揭露她的面纱,就记录一下。接触前端的同学都应该知道网页布局是CSS的一个重点,布局的传统方案都是基于盒

前端不得不了解的 Flex 布局

背景 又双叒叕被老大拉来顶替前端小姐姐撸代码,接触到了Flex布局,以前只听过没用过,碰巧这次要揭露她的面纱,就记录一下。接触前端的同学都应该知道网页布局是CSS的一个重点,布局的传统方案都是基于盒

一篇文章帮你了解 PHP 7.3 更新

PHP目前依旧是其它脚本语言强劲的竞争对手,这主要归功于其核心维护团队的快速更新。 自从PHP7.0发布以来,社区见证了许多新特性的诞生,极大地改进了开发者在项目中应用PHP的方式。提高PHP应用的性

JS 中一定要了解的数据类型和数据转换

数据类型 前言 Js中的类型只有6种,其中基本数据类型有5种分别为string,number,boolen,null,undefined,引用类型有一种,就是object,object是一个大的综合

JS 中一定要了解的数据类型和数据转换

Js数据类型 前言 Js中的类型只有6种,其中基本数据类型有5种分别为string,number,boolen,null,undefined,引用类型有一种,就是object,object是一个大的

干了5年程序员,该如何转行?5个新工作方向了解一下

大数据文摘出品来源:Medium编译:灿灿、曹培信写了5年代码,年龄已近30,头发尚存几缕,除了写代码其他并无所长,职业未来在何方?对于从毕业就进入互联网公司,已经工作了5年甚至更久的程序员来说,现在

关于工业物联网,你应该了解的3件事

世界各地的基础设施日益紧密。我们应该感谢工业物联网(IIoT)带来的这种连通性,它将交通、制造业、医疗保健等行业的机器和设备连接起来,并远远超出了预期范围。IIoT的潜力仍然很高,但风险也是如此。你需

5分钟带你了解浪潮商用机器FP5466G2服务器

海量数据时代,传统的存储架构已经难以满足大规模高并发下系统稳定性,存储设备的弹性扩展和异构存储资源整合等诸多挑战。浪潮商用机器正是针对复杂而多样化的应用需求和大数据、人工智能等新兴应用场景,全新推出企

跨平台开发的救星-让我们来了解一下flutter

第一次看文章的朋友可以关注我,会不定期发布Android面试内容、进阶专题等等。简介很多人已经用上了flutter,今天就来介绍一下Flutter架构Flutter框架分三层 Framework,En

中国移动智能硬件质量报告解读 分布式路由市场你了解多少?

今年6月份,中国移动终端实验室发布了《中国移动2019年智能硬件质量报告》(第一期),并于近日对该报告进行了相关解读,同时对优秀智能硬件产品进行颁奖。根据介绍,本次报告在内容上主要包括手机产品综合评测

来福州,深入了解华为的“数字平台”

   数字化转型已成为几乎所有企业的必经之路,然而在相关战略的制定与真正落地的过程中,企业总是不可避免地会遇到一些困惑与挑战。  企业数字化转型的挑战——尤其对于许多传统行业的企业而言,主要体现在:A

视频会议新选择,讯众及时会了解下

当下的视频会议市场,各大厂商分庭抗礼,小厂商们伺机突破,入局者越来越多,同质化竞争明显,多数厂商受困于竞争激烈的“红海”,亟需寻求破局之道。这其中,有一家新公司表现较为亮眼,不论是在产品创新还是在标杆

了解微服务艰难的一面

2016年底,我和团队开始构建一个全新的平台。想要实现开发人员的终极梦想——没有遗留代码,无需担心向后兼容的问题,最好的一点是,可以自由选择最适合工作的正确技术。三年后,在很多痛苦和折磨之后,我现在可

深入了解JavaScript async/await !

Asyncfunctions让我们以async这个关键字开始。它可以被放置在任何函数前面,像下面这样:asyncfunctionf(){ return1; }在函数前面的「async」这个单词表达了一

了解 MongoDB 看这一篇就够了

作者:美码师一、简介MongoDB是一款流行的开源文档型数据库,从它的命名来看,确实是有一定野心的。MongoDB的原名一开始来自于英文单词”Humongous”,中文含义是指”庞大”,即命名者的意图

深入了解Nodejs Buffer的使用

JavaScript起初为浏览器而设计,没有读取或操作二进制数据流的机制。Buffer类的引入,则让NodeJS拥有操作文件流或网络二进制流的能力。Buffer基本概念Buffer对象的内存分配不是在